major CListControl reorganization

Change CListControl to organize its item as
instances of a special CListControl.Item class
which inherits CCompoundControl.

These items listen to font changes to their own font
as well as to the list's font, update their contents
themselves and then ask the list to do the rearranging
of all items for them.

They will support nested controls later as well.
For now, still only text items are allowed.
minor cleanup to item updates

Don't call Update() on startup, the list will
call UpdatePositions() already. Also move some
comments.
Merge branch 'master' into nested-lists
rename _process_position() method to ProcessPosition() ("make it public")
change ProcessPosition() method: add viewbox as parameter
merge obsolete method

Since commit f4b75b1b8e, the Update() method was no longer needed.
Therefore merge it with the UpdateFont() method (which was calling
it).
move control creation and initialization to an own method

createPart() now calls CreateControl() in a loop
to create and intiate (events etc.) each control
revert commit 5ca0c446f6

Do no longer require viewbox as parameter,
but fetch it when needed as it was before.
minor fix to browser creation
fix to GetElementContent()

If a subnode had inner text, this text was returned as
content for the parent element, which is of course not
intended. Therefore, before checking for node.text, it
is now checking for > 0 child elements.
begin implementing controls inside list items

Loop through and create controls in items using publicly
exposed functions by the PresentationWindow class.
require viewbox to be passed to ProcessPosition()
Merge branch 'master' into nested-lists
New class: ContentArea

A ContentArea describes the rectangle in which any content may go.
The default is calculated from the window composion and any @margin-*
attributes on the presentation's documentElement.
Add a new Viewbox class

The viewbox describes how coordinates specified on a component
are interpreted: as fractions of the viewbox's width and height.
Both default to 100, so coordinates would be specifiedi n percent.
change position processing

Use the new Viewbox and ContentArea classes when processing
a control's position.
Merge branch 'rework-positioning' into nested-lists
add small helper methods for list
implement sub-item iteration

Any iterable items in a list-item will be invoked concurrently.
add _Struct library (used by CGUI)

Only one minor modification: comment out
library-style #include in _Struct.ahk.