FORGE-1060 Initial commit
FORGE-1060 Committing working version of 2-level DTO generator.
FORGE-1060 Initial working REST resource generator.

This kind of works, but requires fixing for nested DTOs. The persistence context should be queried to setup the linkage.
FORGE-1060 Added support for populating associations
FORGE-1060 Added an introspector for extracting property info.

This now enables fields and accessors to be treated the same way, thus making all properties in the JPA entity eligible for inclusion in the DTOs. Separate treatment is therefore not required for accessor methods in entities, or for JPA entities that use PropertyAccess instead of FieldAccess.
FORGE-1060 Fixed ConcurrentModificationException

Removal of items from JPA collections is now done via Iterator.remove since a ConcurrentModificationException would be thrown otherwise when obtaining the next element in the collection.
FORGE-1060 Add @XMLRootElement to top level DTOs

Also removed the logic to add @XmlRootElement to JPA entities.
FORGE-1060 Refactored the DTO creation logic.

This is now extracted out into a Builder.
FORGE-1060 Do not save the JPA entity since it is unmodified.

Also fixed an issue with respect to persistence context updates,
since updates on properties of nested DTOs may be incorrectly done
by clients. We support only updates to associations at the moment.
FORGE-1060 Additional refactorings for the DTOClassBuilder

Refined the API of the DTOClassBuilder for the DTO generator.
FORGE-1060 Extracted String concat operations into FTL templates

Convoluted StringBuilder.append() invocations are now replaced by
FreeMarker templates.
FORGE-1060 Fixed failing tests.
FORGE-1060 Option to choose REST resource generation strategy

Users can now choose between the default JPA entity backed REST
resources or the new DTO-backed REST resources.
FORGE-1060 Added high-level tests to verify REST plugin behavior

The tests verify whether the right classes are created for both
the JPA as as well as DTO based JAX-RS resources. The tests verify
the class structures superficially.
FORGE-1060 Added tests for the JPABeanIntrospector

Also cleaned up the API for JPAProperty.
FORGE-1060 Initial tests for JpaDtoGenerator.
FORGE-1060 Added tests to verify the DTOClassBuilder

Also fixed a bug in the DTOClassBuilder logic involving incorrect
invocations on the Nested DTOs.
FORGE-1060 Renamed a few classes and added license and javadocs.

Also modified the strategy names used in the rest plugin.