OGM-414 Early feedback

@DavideD, @emmanuelbernard: This is not ready yet, but can you give me quick feedback on a specific question (see in-line comment below).
This new method parses given native query (Cypher, Mongo CLI syntax) and creates a corresponding query object from it (e.g. based on `DBObject`s in case of MongoDB). This object is cached in the native query plan for the given native query. The type we return here must match the type of the query object passed via `executeBackendQuery()`. 

Now my question is, should we make this explicit through a type-parameter on `GridDialect`:

    public interface GridDialect<Q> {
        ...

        ClosableIterator<Tuple> executeBackendQuery(
            BackendQuery<Q> query, QueryParameters queryParameters);

        Q parseNativeQuery(String nativeQuery);
    }

I guess that'd make sense, but I don't want to generify the `GridDialect` light-heartedly. WDYT?