Add Provider.basicRecordTypes() and Provider.profileToRecordTypes() advertizing what record types are supported.

It is often the case that not all record types are supported for all profiles.  Knowing ahead of time whether or not it is possible to create a record of a specific type across all providers paves way for using portable features.  This addresses issue #1 and introduces the following metadata hooks:

```java
/**
 * The set of basic {@link ResourceRecordSet#getType() record types} that
 * are supported by {@link ResourceRecordSetApi} commands.
 * <p/>
 * For example:
 * 
 * <pre>
 * ["A", "AAAA", "CNAME", "HINFO", "MX", "PTR", "RP", "SRV", "TXT", "NAPTR"]
 * </pre>
 */
Set<String> basicRecordTypes();

/**
 * Maps a {@link ResourceRecordSet#profiles() profile} {@code type} value to
 * a collection of supported record types. If empty, the provider does not
 * support advanced records.
 * <p/>
 * For example:
 * 
 * <pre>
 * { "geo" : ["A", "AAAA", "CNAME", "HINFO", "MX", "PTR", "RP", "SRV", "TXT", "NAPTR"],
 *   "weighted" : ["A", "AAAA", "CNAME"] }
 * </pre>
 */
SetMultimap<String, String> profileToRecordTypes();
```