Implement signing service

Now that we have an agreed design for the signing service (#272 (closed), !616 (merged)), we need to implement it:

Edited by Colin Watson
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information