[LIVEOAK-42] Support automagical configuration for resources

Creation of @Configurable and @ConfigProperty to represent whether a Resource contains configuration for reading/updating and which fields are part of automatic configuration handling.

Resource now has a default configuration() method which returns null if the Resource is not annotated with @Configurable. If it is annotated, then we return a ConfigResource that can handle all @ConfigProperty fields for reading/updating.

If a Resource wishes to handle configuration in a non 1:1 mapping of config to field, then they can extend ConfigResource to provide what is needed. It is also possible to mix these modes by annotating some fields with @ConfigProperty and calling super.readConfigProperties() to read them using automatic means, and handle other config directly in implementation.