Merge remote-tracking branch 'upstream/develop' into develop
Add case for BadSignatureError to arbitrary package and extraneous dependencies tests.
Remove unnecessary import from extraneous dependencies test.
Python 3 compatibility for arbitrary package and etraneous dependency tests.
Changes following Santiago\'s review.
Modify test code following review from Vladimir
Modify format of paths in metadata and minor fixes.

Allow leading os.sep for target and restricted paths listed in metadata.  Previously, '{repository directory}/targets/file.txt' was listed as 'file.txt' and unsuccessfully compared against '/', or the root-most targets directory.  Now, '/file.txt' & '/' and similar examples may be compared and verified.

Fix issue where a hashed bin with empty targets was flagged as invalid because its targets did not produce a path hash prefix that matched any of those listed in the parent role.  Uncovered with _ensure_all_targets_allowed().

Minor edits to code that compared paths and and used path separators.
Verify delegated target paths in repository_tool.py.

repository_tool.py verified that valid metadata was written, properly signed, hashes all matched, and required roles created.  The only check missing was verification of delegated target paths according the parent's delegations.  Now, target paths are validated before write() is called for both 'path' and 'path_hash_prefixes'.  updater.py has always properly verified paths, only repository_tool.py needed the support.  If any of the delegated paths are not allowed, write()
raises the following exception:
tuf.ForbiddenTargetError: Role 'targets/unclaimed' specifies target '/simple/bad_file.txt', which is not an allowed path according to the delegations set by its parent role.
Modify the extension of rolename files.

rolename.txt -> rolename.json.
Minor edits, merge, and resolve conflicts.
Update README.md

Reorganize sections and update the "delegate to hashed bins" section.
Merge 'develop' and resolve conflicts.
Merge branch 'repository-tools' of https://github.com/theupdateframework/tuf into repository-tools
Merge branch 'repository-tools' of github.com:theupdateframework/tuf into developer-tools
Rename top-level role and functions of repository_tool.py.  Update documentation and diagram.

add_key() -> add_verification_key()
remove_key() -> remove_verification_key()
release.json -> snapshot.json
Update repository_tool-diagram.png
Update README following the renamed functions and release role changes.
Minor edits, such as removing lint left over from a previous merge conflict.
Continue updating unit tests and modify ROOT_SCHEMA.
Continue unit test updates.
Merge branch 'repository-tools' of github.com:theupdateframework/tuf into developer-tools
Added the load project function
Load_project(path) now loads a projects metadata and builds the
corresponding object. Methods to save supporting metadata in the
project.cfg file were also refined