Move BsonDsl to reactivemongo.extensions.dsl package

Remove usage of Producer.
Migrated ReactiveMongo-Criteria into the project.
Refactor DSL code
Update docs
Add constructor helpers
Update dsl.md
Complete field update operators
Documented Criteria DSL operators.
Add findAndUpdate and findAndRemove API
Update BsonDao docs
Update JsonDao docs
Corrected ScalaDoc references.
Added the overloaded where method to Untyped.

See the updated guide/criteria.md for more details.
Added '!==' disequality operator to Term.
Update README.md
The first version is 0.10.0.0
Add life cycle docs
Document when life cycle events are called
Added the initial version of Typed Criteria DSL.

More work is likely needed, but the macro-based Typed Criteria
DSL type is at a point where it contributes significant value.
Removed Term.selectDynamic U subtype requirement.

Requiring a subtype relationship was ill-conceived.