CXX-295 Allow count to work with query hints

@acmorrow, it seems we can take advantage of the fact that Query::hint() had a useless overload that took a string. What I did was repurpose that method to take an index name as opposed to a json string representation of the index spec. This way we can use Query to hold a hint that can either be either an index spec (BSONObj) or index name (std::string). 

This is good because:
 - When the query gets unpacked in the _countCmd method we can use either to support current and future server versions.
 - The api isn't terrible because we avoid adding another parameter to the count method.
 - It fits well with our current design.