add OpenSSL support for symmetric key encryption

Replaces #259

There are a few other things I'd like to do before this is merged.

1. rename CRYPT_MODE_INTERNAL etc to CRYPT_ENGINE_INTERNAL 
2. adjust ordering of crypto algorithms in SSH2 based on available extensions
3. do a test of RC4 too for CRYPT_MODE_STREAM 
4. test both internal modes?
5. do the continuous mode tests without continuous mode enabled to ensure that non-continuous mode operates correctly.

To elaborate on # 2...  OpenSSL cannot be used with arcfour256, for example. That uses a 256-bit key whereas OpenSSL only supports RC4 up to 128-bit keys.

With any luck this'll make #458 more testable (ie. I get the impression mcrypt is becoming supported less and less, as the years pass, whereas openssl is becoming more and more supported; for example, doing `sudo apt-get install php5-cli` on Ubuntu yields a PHP install with OpenSSL but not mcrypt; mcrypt is still built into Windows PHP installs whereas OpenSSL is not, but who knows how long that'll continue to be the case).

Also, the following might make for some interesting reading:

https://github.com/terrafrost/phpseclib/blob/f6e0c4b506b0bdb310314aabfca8d0b7244fe8ba/tests/Unit/Crypt/RC2.php#L17
FWIW I didn't write that. If you do git blame that was petrich.

Anyway, you're paraphrased interpretation is mine as well. I probably would have written it differently myself but I didn't think it was that bad lol.

BTW, are you still wanting me to split this up? I figured I would after I finished up a few more things with it but if you're reviewing it now, as is, is there still a need to do that?