DATAMONGO-633 - Upgraded to Querydsl 3.0.0.

Adapted custom APT serializer implementation to the new API.
DATAMONGO-631 - Explictly reject Order instances with ignore-case flag.
DATAMONGO-632 - Removed schemaLocation attribute from namespace references.
DATAMONGO-634 - Expand scope of CDI bean to application scope.

We simply inherit the application scope from the parent implementation.
DATAMONGO-635 - Fixed some Sonar warnings.
DATAMONGO-633 - Upgraded to Querydsl APT plugin 1.0.8.
DATAMONGO-636 - Added support for countBy in derived queries.

We now change the query execution to a count execution in case a derived query has the PartTree.isCountProjection() set to true or a query defined in @Query has the newly introduced count() attribute set to true.

As the native Mongo count() returns a long we use a default ConversionService to potentially massage the query result into other numerical types.
DATAMONGO-637 - Fixed typo in Query.query(…).

Correcting mispelled "critera". Polished JavaDoc a little.
DATAMONGO-629 - Fixed QueryMapper not to massage queries without type information.

So far the QueryMapper applied the id massaging (especially interpreting the default id keys) even if there was no persistence metadata available to do so. This caused e.g. queries handed into MongoTemplate.count(Query, String) to get keys of "id" massaged into "_id" which shouldn't be the case as we cannot assume anything about the documents and the keys contained in them.

So we now only apply the defaults if there is at least persistence metadata present. This means that for methods on MongoOperations that don't take type information of any kind the queries have to be defined in terms of the document, not the object model as we cannot refer to it.
DATAMONGO-638 - MappingContext does not create PersistentEntities for AbstractMaps.
DATAMONGO-607 - Introduced FieldNamingStrategy SPI interface.

MongoMappingContext can now get a FieldNamingStrategy configured to allow the customization of field names used to persist property values to in case *no manual mapping is defined* (e.g. through @Field). The default strategy will simply use the property name as it did before.

We now also expose a abbreviate-field-names attribute on the <mongo:mapping-context /> XML namespace element to transparently register a CamelCaseAbbreviatingFieldNamingStrategy which abbreviates the property's name to the first letters of its camel-case structure. A property fooBar would then be persisted to a field named fb. If you're not using the XML namespace simply configure the strategy on your MongoMappingContext instance.

To avoid field name mapping ambiguities being introduced through a custom FieldNamingStrategy (imagine the camel-case strategy just mentioned and two properties lastname and level which would both map to l) the PersistentEntity implementation verifies the mapping metadata and throws an exception in case an ambiguity is found.
DATAMONGO-603 - Expose abbreviate field names flag in JavaConfig.

We're now exposing a abbreviateFieldNames() flag in AbstractMongoConfiguration to allow easy enablement of field abbreviation.
DATAMONGO-140 - add writeConcern and Unit-Tests
DATAMONGO-628: added namespace-Element gridFsTemplate
Update MongoNamespaceTests.java

edit unit test name