NEXUS-7588 Component Source Availability

JIRA https://issues.sonatype.org/browse/NEXUS-7588
I think AutoBlockState isn't a good name for this, as one could manually block (put out of service in NX 2 terms) a source.  Suggest something more like AvailabilityState and get away from the "auto block" feature in terms of core api naming.

I also think there are probably also some missing states for sources that require additional metadatadownload or enriched communication with remote, for example NPM needs to download the remote metadata first.  So a state that indicates the connection is established, but some process is running before the source can be used is probably something we'd want to consider.