Refactor the configuration sub-system.

Prior to this patch a Config object was passed around the entire
component tree during construction. This patch simplifies this
by holding a reference to the "current" Config object in
the Kernel instance.

Also for clarity this patch introduces the types Clock::Frequency and
Clock::Period.
Refactor the storage sub-system.

Prior to this patch "storage.h" had grown large and
unwieldy. This patch splits the various types of
storages in their own source files.

Also since there was no use of the simple "Flag",
it is deleted and "SimpleFlag" is renamed to "Flag".