Added a new type handling system for persistence - this allows types handling to be declared once for both json and protobuf.
Added initial support for loading UI Layouts.
Merge branch 'develop' into nui

Conflicts:
	engine/src/main/java/org/terasology/rendering/nui/UIElement.java
Converted a number of menu screens over to ui assets.
Merge branch 'develop' into nui
Merge branch 'develop' into nui
Some reorganisation of NUI code.
Added a Relative layout for positioning widgets relative to each other.
Started adding the Select Game screen.
Merge branch 'develop' into nui
Switched ui screens over to using relative layout.
Removed arbitrary layout.
Added bindable visibility to UIWidget.
Added UIList widget
Changed formatters to a more generic ItemRenderer.
Worked through calcContentSize for existing widgets, it is now used to determine the size of content for scrollable areas and row layouts.
Some package name refactoring.
More work on the UIList element
 - Selection by clicking
 - Activitating an item by double clicking
 - Binding the selection
Can now load a saved game from the game selection screen.
Whitelist java.awt.Point so latest Cities module will work (and alpha-sorted the few nearby entries for good measure)
CopyStrategyLibrary now repopulated when modules loaded, allowing for new CopyStrategies to be registered by modules.
Some tweaks around handling of ReflectFactory and CopyStrategyLibrary.
Added purgeWorld event notification
Merge pull request #790 from msteiger/purgeworld_event

Added purgeWorld event notification
Changed RowLayout to be for a single row.
Changed ColumnLayout to support content calculation.
Fixed issues with UILoader's support of List<T> (wasn't accounting for the type of T)
Implemented Load and Delete buttons in SelectGameScreen
Adding Noise2D and Noise3D
Removed old and unused world/noise generators