PHP-1229: Fix file/chunk deletion for GridFS::remove() and justOne

Previously, deleting a single file (with justOne) that was selected by some non-unique criteria could result in chunks from multiple files being deleted (because the initial files query was not limited).

Additionally, the final file deletion (after chunk removal) would re-use the original criteria. There is no guarantee that the same file would be matched in the second query, which could result in GridFS::remove() deleting file A's chunks but file B's file document.
Merge pull request #794
PHP-1259: Replace $includeSystemCollections boolean with $options arg

Expand original listCollections() test to separate "includeSystemCollections" tests for default behavior, deprecated argument, and options array.
PHP-1259: Support "filter" option for enumerating collections
PHP-1259: Use exception codes in legacy collection enumeration method