Add C++ based faster masking library.

Making key related variables in util.py are renamed to less confusing names.
Review URL: https://codereview.appspot.com/7306103

git-svn-id: http://pywebsocket.googlecode.com/svn/trunk@729 4ff78f4a-9131-11de-b045-6380ec9940d4
Override shutdown method on _StandaloneSSLConnection object to strip "how" argument.

Normal socket has "how" argument but OpenSSL.SSL.Connection doesn't. To avoid
an error, insert a function to remove the argument.

Bonus:
Quit if --tls-client-auth is specified but ssl module is not available.
We log that at critical level now but forgot to exit.
Review URL: https://codereview.appspot.com/7374048

git-svn-id: http://pywebsocket.googlecode.com/svn/trunk@730 4ff78f4a-9131-11de-b045-6380ec9940d4
Change benchmark tool to measure performance for each direction.
Review URL: https://codereview.appspot.com/7303084

git-svn-id: http://pywebsocket.googlecode.com/svn/trunk@731 4ff78f4a-9131-11de-b045-6380ec9940d4
Wrap socket._fileobject instances made from OpenSSL.SSL.Connection instances for some tweak.

The Connection instances raise special exceptions. We need to catch and
convert/dismiss them to meet the expectation of SocketServer.
Review URL: https://codereview.appspot.com/7365051

git-svn-id: http://pywebsocket.googlecode.com/svn/trunk@733 4ff78f4a-9131-11de-b045-6380ec9940d4
fast_masking: Remember the last index in masking key

RepeatedXorMasker.mask must use the masking key byte next to one used for the last
mask call. Make fast_masking library take masking index and _mask_using_swig method
update self._masking_key_index.

Also, this CL fixes unittest for util.py. It was using three byte data as
masking keys for testing. Masking keys are always 4 byte and fast_masking cannot
handle such a mask.
Review URL: https://codereview.appspot.com/7480045

git-svn-id: http://pywebsocket.googlecode.com/svn/trunk@734 4ff78f4a-9131-11de-b045-6380ec9940d4