Support using commands not named gpg for signing

Fixes #29
Add tests and refactor upload function
Merge pull request #79 from sigmavirus24/feature/29

Support using commands not named gpg for signing