Optimize BSON::ObjectId.from_string and BSON::ObjectID.legal? via C ext

Our application ends up calling ObjectId.from_string a lot and the Ruby method is rather inefficient. The C extension is an order of magnitude faster.