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
Drawing Lines added to canvas
MigLayout, ZoomLayout
Merge branch 'miglayout' into behavior
moved behavior trees to engine
Behavior Tree Editor now uses NUI
Behavior Trees are now an asset type
added support for removing