Fix Equality And Other Issues
* Implement BSONDBPointerBufferHandler.write
* Make ArrayReadableBuffer a case class to get properly constructed .canEqual and .equals methods to avoid false negatives
* Fix misleading comments in BSONArray
* Fix misleading toString method in BSONArray (reported it was a BSONDocument)
* Make BSONObjectID extend Equals and implement canEqual and equals for it, properly (gave false negatives previously)
* Make BSONDBPointer override equals and canEqual to avoid false negatives
* Add an Equality test suite to validate that the above all works.