Refactor Configuration implementation to be more consistent.

Previously, accessing subsets of Configuration objects resulted in
callers receiving Map or Property objects back.  This commit makes it
possible for callers to work with Configuration objects in all
instances.

Additionally, encrypted values in Configuration objects can be handled
within a subclass of Configuration using a fluent API rather than being
handled by an outside class.
Another of the eternal debates. :)
Personally, I've always prefered the presence of any scope resolution. Makes it easy to see where a variable is defined (we immediately know it's not defined in the block and it's not a static import without having to look around the code) and is ever-so-slightly faster when the reference is resolved.

Though, I agree we should be consistent with our usage (at least, within a given class file).