Test for non-executable files with execute bit set.

* Install a build check to avoid regressions.
Flake8 already checks for NL at EOF (W292).
Remove execute flag from non-executable files.

* Targeted file extensions
  cpp, css, eot, html, jpg, js, json, less, map, md, png, scss, ttf, txt,
  yml, woff
* Other files:
  LICENSE, README
Merge pull request #568 from Renelvon/no_exc

[WIP] Remove execute bit from non-executable files. Install relevant build check.
Use new-style classes.
Fix docstrings.
Raise NotImplementedError if BackupTool.restore is invoked.
Avoid os.sep; use os.path.join for buliding paths.

* Also delegate separator handling to os.path.join.
Factor main function.
Catch only OSError.
Cosmetic fixes.
Use classmethods instead of staticmethods.

* Since the name of the class appears inside the method,
  is should be a classmethod, to ease possible future refactoring.
Simplify get_backups.

* Reverse list in-place.
Filter None objects from list.
Refactor get_backup.

* Print warning on bad backup path.
* Strip try..except to absolute minimum.
Ensure tarfile is always closed.
Print error on exception; return after callback.
Do not mess with sensitive magic methods.
Move testing code to appropriate directory.