REIVEW: [NX-518] Orient database manager

This PR addresses the following issues:

https://issues.sonatype.org/browse/NX-518
https://issues.sonatype.org/browse/NX-519
https://issues.sonatype.org/browse/NX-542
BTW, the approach generally taken in CLM is to use a generated UUID which is stored in the table along with the data, and this id is then used to look up records based on client requests. If we wanted we could do the same here, but it does mean that you would need to query for the document (and have an index for the id field) rather than fetch it directly. Conversely the act of searching for the document eliminates the chance of poking into unrelated classes.