Adds test case

This commit begins the refactorization of the current dirty
encryptAndSend() function. This commit is the base for fixing issue #51
and an undocumented issue which doesn't send signed emails unless
this.passphrase !== "", and then signs the message twice.
Refactorization will also help solve #46 by getting messy proof of
concepts out of the way.
Isolates crypto specific functionality to new file so both tests usage
can play.
Refactors encrypt() and begins retiring bloated and buggy encryptAndSend()
Refactors decrypt() and uses crypto functionality from rc_openpgpjs.crypto.js

Throws out a lot of bloat from decrypt() and creates processReceived() as replacement

Refactors encryptAndSign() and shoves public key info box into separate function

Nukes encryptAndSend(). Ohh, encryptAndSend(). I knew you were trouble when you walked in, now you're lying on the cold hard ground. OOOOOH! AAAAH! OOOH!!! AAH!!! TROUBLE, TROUBLE, TROUBLE!!!

Also disables email signing for now, it appears as if OpenPGP.js has
broken it in some release. Saving for later.

TODO: Shove old passphrase verification checks from decrypt() into
set_passphrase()
Fixes test that I accidentally broke because I'm a naughty boy
Updates generate_keypair() to use generateKeys() from openpgpjs.crypto.js
Rolls back rc_openpgpjs.js as transition to .crypto breaks import

(Will fix later, this part is not urgent)
Disables sign function (because it's broken)