Merge pull request #3 from OliverJAsh/master

Update reference to MongoDB ObjectID
Adding after events
Safer writing?
Ensure ID is of the expected type
Rename options object to engineOptions

This was conflicting with the options object which is a parameter of
Convert query of #findOne() to have idProperty of type ObjectID

This allows you to find by ID in your application without first having
to convert your query to ObjectID:

Before:
    userService.findOne({ _id: new ObjectID(user._id) }, function (err,
entity) {})

After:
    userService.findOne({ _id: user._id }, function
(err, entity) {})