Using specialized BSONDocuments in DefaultReadFile and DefaultFileToSave

They are more convenient: no need to use toAppendable in DefaultFileToSave or toTraversable in DefaultReadFile.
Fix bug when dealing with high loads.

ListMap is buggy (https://issues.scala-lang.org/browse/SI-6853).
Fix StackOverflowError when handling large results.

See
  * https://issues.scala-lang.org/browse/SI-6932
  * https://play.lighthouseapp.com/projects/82401/tickets/917-bug-in-iteratee-library-with-large-amount-of-data#ticket-917-1