*Enhancements:*
* Add default mapping for black holes in GadgetHDF snapshots
* Better dependency specification in `setup.py` for automated installation (rokroskar)
* Handles Eagle-like GadgetHDF snapshots which store their halo/group catalogue as two arrays (specifying the group and subgroup number)
* Add ability to save back individual arrays in GadgetHDF format using `snap['arname'].write()` or `snap.family['arname'].write()` syntax
* Performance enhancements to GadgetHDF implementation
*Bug fixes:*
* Fixed an issue where mu (relative atomic mass) was defined incorrectly in some cases (mtremmel / trquinn)
* Fixed an issue in IndexedSubSnap, where an entire family array could be incorrectly returned instead of an empty array when no family members were present in the IndexedSubSnap
* Fixed an issue where inconsistent smoothing information would prevent a KDTree from generating density estimates; now KDTree insists on using its own smoothing lengths to prevent this occurring.