Introduce Property interface to specify methods available across all property implementations

This change set introduces a common interface (Property) for all Archaius properties, to allow for standard handling of property classes. This change introduces the getChangedTimestamp() method to the ChainedDynamicProperty types, and getChangedTimeStamp(), getName(), and addCallback() to DerivedStringProperty.

Note: it's a little confusing having both get() and getValue() present on most of the classes, but is needed for maintaining backwards compatibility. I believe this is not significantly more confusing than the get()/getValue() duality present on the subclasses of PropertyWrapper.