fix equals for BasicBSONObject and added test for this

BasicBSONObject does not comply with the contract for the equals method

http://docs.oracle.com/javase/6/docs/api/java/util/Map.html#equals(java.lang.Object)

Added a test for this and all tests are passed