New Configuration Style 

This PR is a starter for discussions of how to improve configuration of Dgeni.

The main change is that Packages are now a real type, to which you add processors, services and config blocks.  This means that processors can now have an impact on the configuration of a Dgeni generation run.

Also, there is a new concept of a "service", which replaces the "exports" property of processors.  Services are simply singletons (strings/numbers/objects/functions), which are defined by a factory function.  These are registered with the injector and can be injected into each other and into the process function of processors.

With these changes in place we are set to move processor configuration defaults and validation into properties of the processors, which will improve documentation and how easy it is to understand where config blocks are used.

These things have numerous BREAKING CHANGES to all Dgeni implementations.

If you want to try this out, I have made initial updates to both dgeni-packages and dgeni-example.  You'll see that all three projects have a 'new-config' branch and I have updated the package.json for dgeni-packages and dgeni-example to pull down those branches rather than the versions published on npm.  Just clone dgeni-example and checkout the new-config branch and install the npm modules and run gulp (or grunt):

```
git clone https://github.com/petebacondarwin/dgeni-example.git
cd dgeni-example
git checkout new-config
npm install
gulp
```

This is related to #86.  Comments and suggestions are welcome!