Datastore is now an interface using the abc module without the need of NotImplementedErrors
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.
removed press from readme
Extract interfaces out of routing table classes using abc module

fix
Add tests for data_uri module

Address reviewer comments
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.