FORGE-890 Implementation of the new Scaffold-X plugin and API.

Contains a collection of new APIs for implementing Scaffold-X providers (that support scaffolding from X resource). This includes a Freemarker API that can be used by providers, to load templates and provide generated code. This also includes a Metawidget based API for inspecting Forge JavaClasses and obtaining inspection results.

Contains a delegating scaffold provider for Faces, so that the existing Faces provider of Forge is reused. Tests for this provider are distinct from the tests in the existing provider.
Merge pull request #320 from VineetReynolds/scaffold-plugin

The Scaffold-X API and plugins
FORGE-892: Added javax/xml/bind to modules.xml
FORGE-874: Used Startup event to register proxy
ProjectInitializer.doInit() was being called twice. ShellImpl.setCurrentResource already fires InitProject event
FORGE-874: Using PreStartup and added a safe check in ForgeEnvironment
FORGE-794: Refactored PropertyCompleter to shell-api
FORGE-895: Shell no longer crops UTF-8 chars
FORGE-866: Minor fix
FORGE-900: WILDFLY added to the list of supported persistence containers
FORGE-901: Persistence.xml is now created when getPersistenceDescriptor is invoked and it doesn't exist
FORGE-902: RmPlugin no longer prompts and shows an error if the deleting resource does not exist