Changed the name of the binary tree function from get_tree to make_tree.
- Added a Communicator class which is the centralized accessor communication algorithms: point-to-point, broadcast (lazy_sync), and barrier.
- register_group, unregister_group, and get_group are now member functions of Group.
- DistCache now only handles local caching operations.
- DistCache can now handle any key type.
- Moved the lazy_sync factory functions into Communicator.
- Updated unit tests to reflect the above changes.
- Fixed bugs in the group broadcast operation.
- Enabled the group broadcast unit test.