OGM-506 PREVIEW "Native object" queries for MongoDB

(Based on top of https://github.com/hibernate/hibernate-ogm/pull/317; that's the [actual diff](https://github.com/gunnarmorling/hibernate-ogm/compare/OGM-480...OGM-506))

Allows to create queries in form of `DBObject` instances and return managed entities/projections for MongoDB:

    DBObject queryObject = new BasicDBObject();
    queryObject.put( "$query", new BasicDBObject( "author", "Oscar Wilde" ) );
    queryObject.put( "$orderby", new BasicDBObject( "name", 1 ) );

    NoSQLQuery query = session.operationsFor( MongoDB.class ).createNativeQuery( OscarWildePoem.class, queryObject );
    List<OscarWildePoem> result = query.list();

I'm interested in more general high-level feedback; I'll polish some details subsequently if you guys are ok with the general approach. Of interest in particular is the new `OgmSession#operationsFor()` API. I'd add something similar to `OgmEntityManager`.

The PR also unifies the query execution paths for MongoDB (gets rid of `MongoDBQueryImpl`) and adds support for `setFirstResult()` / `setMaxRows()`.