Fixes bug which caused unencrypted/unsigned emails to not be sent
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)
Adds email sign (without encryption)
Readds export function, which for whatever reason was removed sometime...
Adds key_search.html
Remembers encrypt & sign checked status

The status of encrypt and sign checkboxes is now stored in HTML5 local
storage, making the browser remember their status for the future.

Fixes #54

Also adds a confirmation message when sending plaintext email.
README update
I DON'T KNOW WHAT WE'RE YELLING ABOUT
Typo fix
Merge remote-tracking branch 'upstream/master'