Introduce code generation via annotation processing.

# DO NOT MERGE

This pretty fundamentally changes how the event bus behaves with regard to registration and unregistration.

There is now a concept of a `Finder<T>` whose job is to locate the `@Subscribe` and `@Produce`-annotated methods on instances of `T`. The annotation processor generates finders for each type which perform the installation and uninstallation of subscribers and producers onto the bus.

A `Subscriber<T>` is an interface which represents something that can accept an event of type `T`. A `Producer<T>` is an interface which represents something that can produce a new event of type `T`. The annotation processor's code for the `Finder<T>` calls generated `Subscriber` and `Producer` classes which call real methods on the finder's `T` type.

Since we cannot guarantee the precense of annotation-generated classes at runtime, a reflection implementation is provided as a fallback which behaves exactly as the v1.x Otto `Bus` does.

### TODO

 * [ ] Evaluate better invalidation for the unregistration inside of a handler case.
 * [ ] Fix unregistration in a handler/producer tests.
 * [ ] Write integration tests using the Dagger framework.

Probably a lot more...