[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.
I'm fine with the current naming, just wanted to point out an alternative scheme some DSLs use where methods have the property without the `with` prefix, for example: `new MetadataQuery().skip(8).limit(50).orderBy("name", ASC);`.