Datastore is now an interface using the abc module without the need of NotImplementedErrors
Merge pull request #985 from carolinux/cleanup-abc

Datastore is now an interface using the abc module
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.