Text search

Adding text indexes and score sort.

There was a comment on Sort implying the following syntax:
```go
query4 := collection.Find(nil).Sort("score:{$meta:textScore}")
```
but I think it makes more sense to be coherent with the index syntax and do:
```go
query4 := collection.Find(bson.M{"$text": bson.M{"$search": "some text"}})
                    .Select(bson.M{"score": bson.M{"$meta": "textScore"}})
                    .Sort("$score:textScore")
```
Does that make sense?

It might be missing documentation. But I want to see if this might get accepted.
That's every single test value in the test set, and it's also hard to see why they're expected in that order at a glance.

Please:

 1. Use "foo" as the matching string.
 1. Use prefixes that are indicative of the test (`"just once: foo"`, `"many times: foo foo foo"`, etc).
 1. Add sample values that match only on A and only on B (`"none"`)

The hint is that it should be clear at a glance why the order is as suggested.