OGM-600 Establishing ForwardingGridDialect base class to facilitate the ...

...addition of further dialect facets and chaining them
Ok, they are not exactly the same, they call two different methods: `isQuerable()` and `isBatchable()`.

I'm not a big fun of this solution, I think I would prefer something as describe before: `gridDialect.as(BatchableGridDialect.class)`, this has the benefit that the implementation is responsible to return itself if it satisfy a particular contract. I'm not sure if it doable/sensible, what do you think?