Update Mac install script

* Always brew install python.
* Explicitly set virtualenv executable.
* Drop pip installation; installing python via brew has us covered.
* Warn the user of potential connectivity problems when UPNP fails.
* Add autoenv support for mac
* Always activate our virtual environment
* Only on mac, tell users to run openbazaar with --disable-sqlite-crypt
donation address, pass, notary
Populate Makefile with more refined targets.

* Rename `style` target to `check`.
* Split `check` to multiple subtargets.
* Factor execute flag check into separate script.
* Factor jshint check into separate script. Use standard file for
  JSHint configuration.
* Factor new line check into separate script.
* Factor pylint check into separate script.
* Add `unittest` target. Restrict it to the tests available in the
  test folder.
* Do not clutter Travis output with make commands.
* Test for available command using POSIX-compliant `command -v`.
* Do not check for executable JS inside ./node_modules.
Remove redundant files.

* checkstyle.sh replaced by separate scripts.
* DB resides in the db/ folder.
* util/ is not a python directory.
Remove execute flag from various feature files.
Merge pull request #972 from tikhon/mac

Update mac configuration
Merge pull request #891 from Renelvon/makefilefy

Refine Makefile
removed press from readme
Merge pull request #1002 from SamPatt/press_removed

removed press from readme
Extract interfaces out of routing table classes using abc module

fix
Add tests for data_uri module

Address reviewer comments
Merge pull request #996 from carolinux/cleanup-routingtable

Cleanup routingtable
Merge pull request #947 from carolinux/improve_test_coverage

Improve python test coverage
Use isinstance instead of comparing types.

* This is more idiomatic Python and prevents failure in case of
  subclassed types.
Use set literals.
Drop redundant len in boolean contexts.
Merge pull request #950 from Renelvon/modern2

Use forward-compatible python (part 2)
Delegate splitting to the KBucket.

* A KBucket should handle the details of its splitting. This
  will enable using different subclasses of KBucket with the
  RoutingTable. It is also necessary to write thread-safe code.
* Test kbucket.splitKBucket.
Add and test MemKBucket.

* Test MemKbucket initialization.
* Test MemKbucket against the superclass testsuite.
* Model replacement cache as a deque.
* Test cache-splitting.
* Test contact replacement from cache.
Protect access to KBucket attributes via an RLock.

* A Kbucket is now a thread-safe object.