Switch from cmake to distutils extensions for nupic installation

This PR aims make Nupic "pip installable". For this it tries to leave the build/install process the more "pythonic" as possible using:
a) native support from Distutils/SetupTools to build all C++ extensions (https://github.com/numenta/nupic/issues/1573) 
b) Python scripts to perform jobs that were being performed by C++ executables (https://github.com/numenta/nupic/issues/1576).

The motivation of B is because it's very tricky install all current cpp executables and libraries using A solution. Some of these libraries (like `bindings`) are inevitable to be build as extensions, however c++ extensions like `htmtest` and `compare_nupic_core_version` can be replaced to python scripts. Different than bindings, these 2 extensions are complicating the process as they should be installed into souce repository (`bin` folder, to be exact) and not into `nupic` package install folder like the other modules. 

Once that all extensions now can be build in a natural way, we can remove CMakeLists.txt from NuPIC Pyhton. This makes that CMake becomes essential only to build the NuPIC Core library: as this is an optional job, we could bypass CMake/Git use during PIP process decreasing the number of build/install steps and dependencies.

I still am working on the pythonic version of `HtmTest`. Thus it's normal that some tests fail, because Travis still is referencing its c++ version. 

* * *

## TODO:
- [ ] Figure out the `ARCHFLAGS="-arch x86_64"` requirement on darwin64
- [ ] Update supporting documentation (README, wikis) with any build changes
- [ ] Use a standard setuptools temporary file location for nupic.core binary download, unpacking, and cloning
Custom command-line parsing won't work when you install with `pip` or similar. I'd suggest you use the recommendation here and create your own setuptools command: http://stackoverflow.com/a/20248942

I ran a simple test and it looks like you will need to inherit from `setuptools.command.install.install` since it defines a bunch of options that pip uses. A simple setup.py that you can try is at the end. Save as setup.py in an empty directory and try the following commands:

```
python setup.py install
python setup.py install --foo=myFoo
pip install . --install-option="--foo=myFoo"
```

These commands will fail but you can see in their output that they print out the value of `foo`.

__setup.py__:

```
from setuptools import setup
from setuptools.command.install import install


class CustomInstallCommand(install, object):
  """Customized setuptools install command - prints a friendly greeting."""
  user_options = install.user_options + [
      ('foo=', None, 'Specify the foo'),
  ]

  def initialize_options(self):
    super(CustomInstallCommand, self).initialize_options()
    self.foo = None

  def finalize_options(self):
    super(CustomInstallCommand, self).finalize_options()
    # Do some validation on NuPIC options
    assert self.foo in (None, 'myFoo', 'myFoo2'), 'Invalid foo!'

  def run(self):
    # Run NuPIC custom installation steps
    print "Hello, developer, how are you? :) --foo=%r" % self.foo
    # Continue with setuptools installation
    super(CustomInstallCommand, self).run()


setup(
    cmdclass={
        'install': CustomInstallCommand,
    },
)
```