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.
mgo's code don't use 'ensureIndex' in the collection, instead of that it insert the index directly on 'system.indexes'. After several tries I found out that this is the syntax expected by the system.indexes collection.

If you look at the example you just pasted, in the index itself the 'key' list don't include the text keys only 'weights' include them.