Renamed InputBuffer to BsonInputStream and BasicInputBuffer to ByteBufferBsonInputStream
Removed methods in BsonInputStream that are just as easily implemented directly in BsonBinaryReader
Replace BsonInputStream method that reads a byte array by creating a new one and returning it with ones that take the byte array as a parameter.
Added BsonInputStream methods: mark, reset, and hasRemaining.  Mark and reset are not currently needed but will be useful to have in the interface when we add a POJO codec that needs to rewind the stream once it learns what the discriminator is.  hasRemaining will be useful when we add an implementation that wraps a java.io.InputStream and clients need to know if all the documents have been read off the stream.
Added test specification for ByteBufferInputStream
Created BsonOutputStream interface that is implemented by OutputBuffer, and replaced references to OutputBuffer with BsonOutputStream where an OutputBuffer is not needed.
Renamed BsonInputStream to BsonInput and ByteBufferBsonInputStream to ByteBufferBsonInput
Renamed BsonOutputStream to BsonOutput and ByteBufferOutputBuffer to ByteBufferBsonOutput
Added unit tests for BasicOutputBuffer and ByteBufferBsonOutput, and removed other tests that are now duplicated by the new ones.