ISIS-475: dynamic layouts from JSON

- new LayoutMetadataReader interface
- new impls for properties and for json
- new classes representing LayoutMetadata (serializable to JSON)
- FacetedMethodsBuilder now uses the new LayoutMetadataReader interface
  - searches for json impl, then properties impl
- utility classes/methods (ObjectAssociations, ObjectSpecifications, EntityActionUtil.memberOrderOf) moved from viewer-wicket to core-metamodel
- example layout for ToDoItem converted to *.isis.json
- DeveloperUtilitiesService allows ability to download layout
- factored out MemberOrderFacetComparator from MemberOrderComparator, so can reuse.


also:
- ArrayUtils and ArrayUtil classes removed
- combined Resources utility class with ResourceUtil utility class, unused methods removed
- unused methods in PropertyUtil removed

also:
- little bit of CSS cosmetic change in table td left borders
ISIS-476: added guard to DataNucleusSimplePersistAlgorithm
ISIS-468,ISIS-469: change to @MemberGroupLayout, downloading of layouts

- @MemberGroupLayout#columnSpans is now a simple int[]
- changes suffix from isis.properties to layout.properties
- changed suffix from isis.json to layout.json
- added guard in case @MemberGroupLayout refers to non-existent groups
- fixed download code of zip of xxx.layout.json (and put into directories following package of each class)