Implemented Optional Encrypted PM

-=Documentation=-
AES: for encrypting text.
  *128-bit
  *using CBC cipher-mode for each String
  *IV reset to original for each new line, but XOR-ed to a counter (increment by 1, for each player).
  *using ISO10126 padding to randomize empty ending

RSA: for encrypting AES key (did not encrypt IV)
  *1024-bit
  *using OAEP padding

Key Exchange:
---
All is send in plaintext.
  A say:"Encryption:ExchangeNewKey<(extra special request)>"
  B say:"Encryption:Options:<(extra special request)>"
  A say:"Encrypt:PublicKey:<(RSA's ToXmlString output)>"
  B say:"Encrypt:SymKey:" <(RSA encrypted AES key in Base64)> " SymIV:" <(AES IV in Base64)>,
  A say:"Encryption:Active"

If A say "RequestKeyExchange" then it will not respond to similar message from B (and vice-versa) to avoid collision.
A & B won't respond to skipped sequence and automatically timeout in 5-second if no respond, and say "Encryption:End".

A&B can say "Encryption:End" to terminate encryption session at any time.  This will reset any encryption's internal state.
A&B can say "Encryption:ExchangeNewKey" at any time too, this can re-exchange new key.
Adding "(no history)" to <(extra special request)> should skip saving chat history to local disk.

Text Encryption:
---
  Text-about-to-send is encrypted and appended with "\x2D0" or U+2D0 (triangle semicolon) to the beginning of encrypted string (for ZKL formatting) and is sent.