ISPN-4862 Don't use static resource fields to initialize the shared description resolver in the static initializer. This fixes an initialization race where some fields could be null
ISPN-4673 Split-brain: get() returns null when all owners are removed
from view

* If get returns null, check that at least one owner is in the cluster.
* Replace RpcException with AvailabilityException if there are no valid
  answers.
Generate the component metadata file in the generated-resources directory, so that it doesn't force a recompile of the module every time.