fix(.gitignore): ignore webstorm ide files
docs(contributing): add doc for contributing guidelines (wip?)
docs(roadmap): add doc for planned issues/features/etc (wip?)
docs(CONTRIBUTING): add more detail
docs(ROADMAP): high level plans
docs(ROADMAP): add addition detail
docs(ROADMAP): add stuff about i18n
docs(ROADMAP): add links to milestones
docs(ROADMAP): fix links
refact(*): remove previous Dgeni implementation
feat(dependency-sort): add utility function
feat(log): add wrapper around winston
feat(Package): add Package type
feat(Dgeni): add new (no config - DI based) Dgeni
refact(dependency-sort): remove lodash and tidy up
refact(Dgeni): remove lodash and change `dgeni` service to `config`
fix(Package): add param checks and tests
docs(NOTES): move to dgeni-packages
chore(gen-docs): update to new Dgeni style
feat(Package): allow processors to be defined as an object

If processors are defined as an object they cannot have services
injected into them but if that is OK then this gives a less verbose
API.

Previously, you would have to wrap the object in a function:

```
myPackage.processor(function testProcessor() { return {
  $process: ...
});
```

Now you can also do:

```
myPackage.processor({
  name: 'testProcessor',
  $process: ...
});
```

Note that in this case the name must be provided on the object.