WIP: Added createIndex.
Refactor is_valid_dbname out of this function.
Add function to check for minimum version just like the API version.

Probably not in the best spot, but this should do.
PHP-960: Add MongoCollection::createIndex.
Added test cases

- One for createIndex/ensureIndex with scalar (string) index field
- One for options to createIndex/ensureIndex (unique, dropDups, name and
  expireAfterSeconds)
Fixed test, as it hardcodes 27017.
Added support for socketTimeoutMS for commands and deprecate timeout.

Adjust the test so that it is not throwing deprecation warnings, and also fixed
another test as because of Hannes' brand new write insert commands the
socketTimeoutMS in this test now also started working and the PI * 100 was too
little time.
Remove superfluous parameter.

This should be added again once we start supporting multiple mongos failovers
etc.
Fixed exception class for index creations.
Added checks for invalid index specifications

I didn't want to change the exception class, as that is of course
a BC break.

Added some extra test cases too.