Fix for BSON decode error with large packets

* Using io.ReadFull instead of r.Read
* Incorporated more error opportunities in the case of mis- read and write
* Removed errors dependency
* Thanks to @zeebo for finding original fix