Extract classes to files
Handle :opt, :key, :keyreq arguments; ignore rest

  * :keyreq behaves just like :key

  * :opt and :key get auto injected if the injector knows how - this
    means when your initializer supplies a default argument, ruse will
    override the default when it knows how, otherwise it will let ruby
    use the default.

  * There are other types of arguments, :rest (*args), :keyrest
    (**params), and :block (&block). ObjectFactory ignores these types
    of arguments, which means the object *will* get built by the
    injector.

  * Introduce an Initializer object that can sift through each of the
    initializer method arguments, knowing how to resolve dependencies
    for each one.

  * Since required keyword arguments don't exist in ruby 2.0, we fall
    back gracefully.
Merge pull request #1
Build on travis-ci.org
Maintain 1.9.3 compatibility for a little longer

Currently, the only compatibility problem is in the specs.

1.9.3 compatibility will likely be dropped in the future if it adds much more friction.
Just use rake

Tried to skip rake and bundler, but found it more effort than its worth.
Travis-ci does not have bundler 1.6
Extract `base_module` from `load_type`

Makes it easier to monkeypatch TypeResolver to start from your application's namespace.

Not part of the public API, but will suffice until a more general solution is implemented.

Closes #5
Raise when service name is invalid

Closes #4
Injector#configure does not lose data

Previously, prior configuration could be discarded by the use of
Hash#merge! on the root configuration hash. Instead, we now invoke
Hash#merge! on each of the configuration parts -- aliases, values, and
factories.