First try to archive the local repository before downloading the archive from GitHub.

Note that Git-related operations are now handled by the GitRepoHandler class.
Added an archive method for Bazaar branches.
Import bzrlib.revisiontree.
Added a method in the Figshare class to determine the category ID from a given category name.
Some variable renaming.
Update a comment.
Use a personal access token rather than an API key for Zenodo.
Add a method which returns the SHA-1 hash of the HEAD.
Fix the add_category method in the Figshare module.
Rename article_id to pid (publication ID).
Better exception handling for the repository handlers.
Remove an old print statement.
Add an example access token to the example PyRDM configuration file.
Moved more repository-related code to the repository handler class.
Use 'pid' rather than 'article_id'.
Updated some comments and print statements.
Determine the repository type.
Check to see whether the software has already been published inside the Publisher class.
Determining PyRDM's version is now done by the publish_software method in the Publisher class.
More helpful comments and error messages.