[NX-715] Component and asset query (rebased)

https://issues.sonatype.org/browse/NX-715

This PR is primarily about the query service in nexus-component-services. For the purpose of this PR, please ignore the state of nexus-component-assetstore and nexus-component-recordstore. They need to be cleaned up post-merge.
could also use `checkArgument(!Strings.isNullOrEmpty(propertyName), ...`