Implement new C++ data structure to power algorithms

Fixes #216.
Obsoletes https://github.com/numenta/nupic.core/pull/217.
Somewhere in this file it would be helpful to have a fairly verbose description of the Connections class. What is it's primary purpose? Why is it useful? What are the key assumptions / optimizations?