refactor libcollections as part of collection reform

* Moves multi-collection files into their own directory, and splits them into seperate files
* Changes exports so that each collection has its own module
(that is, collections::treemap::{TreeMap, TreeSet} => collections::treemap::TreeMap, collections::treeset::TreeSet)
* Removes underscores from module/file names to provide more uniform naming
* Renames PriorityQueue to BinaryHeap
* Miscellanious fallout fixes

[breaking-change]
This is an interesting design, any particular reason you wanted to remove all the reexports here?