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.
CopyStrategyLibrary now repopulated when modules loaded, allowing for new CopyStrategies to be registered by modules.
Some tweaks around handling of ReflectFactory and CopyStrategyLibrary.
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
Started adding UIText widget for text input.
Switched over to using the new Terasology Keyboard class and constants.
Fixed Rect2i's overlap() method
Fixed some issues with TextLineBuilder's handling of spaces
Implemented selection, cut/copy, and long-line handling in UIText.
Canvas's drawText(String, Rect2i) method no longer applies the margin.
Merge branch 'develop' into nui

Conflicts:
	engine/src/main/java/org/terasology/world/chunks/localChunkProvider/LocalChunkProvider.java
Select module screen.
Create game screen.
Fix for window position configuration messing up if closing the game while it is minimised.
Made family bindable.
Replaced padding options with vertical/horizontalSpacing (only applies between elements)
Various margin fixes.
Added the option to use content width and/or content height to RelativeLayout and RowLayout
Added support for bind nesting.