Add external bindings for accessing city data.

These bindings are not necessarily correct and at the current state they're
untested, fixing bugs later.
Add extern for qooxdoo.ui.container.Composite.

This will be needed in order to add a basebuilder button to the city control
composite on the upper right corner.
Fix qooxdoo Composite public function types.

Actually the type for index wasn't wrong but missing altogether.
Base qx.ui.core.Widget on LayoutItem.

This is in preparation of our upcoming steps, as we need to create a new button.
Add extern CitiesNavigationBar and its accessor.
Composite should extend Widget.

See: http://demo.qooxdoo.org/current/apiviewer/#qx.ui.container.Composite
Add a set() method to LayoutItem.

This is because we currently don't want to implement the whole Qooxdoo object
hierarchy. For our purposes, abusing LayoutItem for set() seems to be a quite
acceptable tradeoff.
Add qx.ui.form.Button.

This means, that we're finished with implementing the requirements to add custom
buttons to the UI.
Add a basic basebuilder button to the nav bar.

This button currently just sits there, does absolutely nothing and just messes
up the game interface, but that's fine for now.
Move ui.Widget to the right place: qx.Widget

Cherry picked from commit 7eec4c2b19404fd7f02a0526741d4bec0e9d8527
Add ChatWindow, based on CustomWindow and parents.

Currently it just resembles a blank window without any widgets.
(cherry picked from commit bacb13e754682bfcc357254e3026cb405433cce0)
Move all Qooxdoo related stuff into inject.qx.

This is to comply with the structure introduced with these cherry picks:
9113ab1f13fd20cfa1a2b6e7ab41bd98ef4ed065
28772b265e8c90224b81c67c3c057a70aea558b2
Add addListener() to LayoutItem.

This is for our button to actually have any functionality.
Implement listener for the basebuilder button.

Yep, now we are coming to an end, because this branch as well as the chat_window
branch depend on the userscript_compiler branch.

Not necessarily a userscript compiler is the solution for this particular
problem, it's just the nicest one.

Basically we need the ability to attach to certain stages of the script loading
chain of the current page (and thus of the game), as custom windows need to
access the webinterface namespace, which is loaded last.
Add show() and setAppearance() to Window.
Add missing external UI declarations.
Finish style of basebuilder widget.

Okay, this seriously still looks ugly as hell, but for the moment, it provides
the functionality and doesn't overlap other content, so let's go with it for
now.

The basebuilder window currently is just a window showing the URL, but as soon
as we have implemented more external bindings to webfrontend and qx, our own
interfaces will become more sophisticated.
Fix CityBuildings.m_Buildings to use "l" property.

This is because it seems to use some part of JS-translated .NET libraries. And
for now we really don't want to write an external binding for that, so we're
using this workaround to access the "l" property, which is a native Javascript
array.
Preliminary implementation of basebuilder IDs.

This currently works well for all buildings, except for harvesters, as we can't
tell from the buildings info whether it's a tiberium harvester or a crystal
harvester. But for the rest it should work fine, though the conversion list of
C&C TA building types to BaseBuilder's building types isn't complete.
Use m_ProductionModifierTypeDBId to get harvester.

This seems to be the only way to get the harvester type, without leaving the
CityBuilding instance, of course.