Tests: Fix a likely off-by-one error which would cause reading off the end of `letters`, and make this a little more efficient
GridFS chunk_new: Initialize with the amount of space needed

This avoids automatically allocating about 1.5 x as much space as needed
GridFS: Replace conditional operator with easier to read MIN and MAX and remove an extra semicolon
GridFS: Rename pre- and post-processing funcs

 -  Rename `preProcessingFunc` to `readFilter` and `postProcessingFunc` to `writeFilter`
 -  Consolidate duplicate typedefs
 -  Make `srcData` parameter const
 -  Change binary data buffers from void* to char* for consistency with rest of driver
GridFS: Change return type of gridfile_get_oid for convenience
Add const qualifiers
Refactor gridfs_init and gridfs_destroy and minor formatting
GridFS: Restore Gary's version of upperFileName

Pull request #106 clobbered Gary's version. This puts it back.

It also moves ctype.h to the .c file where it's needed, and removes `_unlink` which is being handled in gridfs_test.c
BSON: dispose to dealloc - missed a function

See pull request #105
Merge pull request #114 from noa--/bson_iterator_dealloc

BSON: dispose to dealloc - missed a function
Merge pull request #107 from noa--/gridfs_chunk_new

GridFS chunk_new: Initialize with the amount of space needed
Merge pull request #108 from noa--/gridfs_test_off_by_one

Tests: Minor fix
Merge pull request #109 from noa--/gridfs_min_max

GridFS: Replace conditional operator with easier to read MIN and MAX
Merge pull request #110 from noa--/gridfs_pre_and_post_funcs

GridFS: Rename pre- and post-processing funcs
Merge pull request #111 from noa--/gridfs_minor_refactoring

GridFS: Minor refactoring
Merge pull request #112 from noa--/gridfs_strupr

GridFS: Restore Gary's version of upperFileName
GridFS: Refactor uppercase filename handling
Merge pull request #115 from noa--/gridfs_uppercase

GridFS: Refactor uppercase filename handling
Mongo: Avoid dereferencing a null cursor
Tests: Create macro for mongo_client