config api for registering engines

This adds an api to config for registering new engines with Dassets.
Registering involves building an instance of an Engine and associating
it with an input extension.  Engines can be looked up using the
`engines` reader on the config.

Engine authors would use this API to register their engines at
require-time, with something like:

```
require 'dassets'
Dassets.config.engine 'myext', Dassets::MyEngine, {'some' => 'opts}
``