Fix code formatting a bit.

Try to keep two lines between packages, lists of imports, and any
class, object, trait, or package definitions at the root level.

Also sort imports where possible.
Add Cache and Cacheable types.

Currently used in Ascension for caching a few different things to
avoid a lot of unwanted allocations in event handling (e.g., new
Runnables).
Version 1.1.0

- Added Cache and Cacheable.