Hi Red Panda,
The answer is "it's complicated." Most of the UI is built up programmatically by constructing the various GWT panels, etc. The root is Ode.java, and things branch out from there. There are also some MVC-like tricks that are done so that only one object is kept around (e.g., SourceStructureExplorer and the like). To answer your immediate questions:
1) The BlocklyPanel class is a GWT panel that represents the Blockly workspace. There is a one-to-one correspondence with the YaBlocksEditor class.
2) Version numbers are all defined in YaVersion.java. You may also specify a version number for the appengine deployment in appenbuild/war/WEB-INF/appengine-web.xml
3) That will depend on what changes you want to make. As I mentioned previously, there are different classes that construct the different elements of the UI.
4) There are four CSS files you will need to look at. They are gwt.css, Ya.css, blockly.css, and ai2blockly.css.
If you have more questions, feel free to continue adding to this thread.
Regards,
Evan