New Temporal Memory implementation

Progress on https://github.com/numenta/nupic/issues/1086.

Still working on end-to-end integration tests, but it looks like the basic functionality is working.

Please review: @scottpurdy 

@subutai If you get a chance, take a look at the generated documentation, and see if it all makes sense to you at a high level. I've already shown you the design beforehand, so nothing should be too surprising there.
This looks really weird. I would prefer it like this:

```
_activeCells, _winnerCells, predictedColumns = (
    self.activateCorrectlyPredictiveCells(
        prevPredictiveCells, activeColumns, connections))
```

or something similar. The main thing to avoid is having to break the LHS of the equal sign across multiple lines.