Add abstract base class with support for static/dynamic caches (fix #11
and fix #6).
Add static cache.
Revise package structure (fix #8).
Reduce methods in abstract unit.
Change abstract unit. Add hour implementation. Fix miles per hour. Move
implementations to impl package.