Issue #27 Lifecycle stuff, ready for final review pass

Before I start implementing this all over the place!
This says the CacheManager will "try" to go back to UNINITIALIZED. Is there a case where it cannot (or will not) go back to that state when throwing and exception?