CXX-218 Added GridFileBuilder for stream-like GridFile writing in GridFS

The basic API of the new class will be:

- GridFileBuilder(GridFS *grid) => the constructor takes the GridFS pointer and annotates the chunkSize which couldn't be changed. The GridFileBuilder will need to access GridFS pointer as a friend, because it needs to access to chunkNS and _client properties.
- void appendChunk(const char *data, size_t length) => appends the given string of data, which would splitted in several chunks or annotated in the auxiliary buffer. Auxiliary buffer data will be stored at GridFS when it arrives to chunkSize length.
- BSONObj buildFile(string name, string contentType) => inserts the new file in GridFS using the method insertFile. If the auxiliary buffer contains data, it will be stored before to call insertFile.

A simple use case is when you need to write a large amount of generated data (not stored in your filesystem disk), and you don't want to store it in temporary disk files.