pct-speedtest.py: Add CTR-mode tests
Fix MODE_CTR memory leak under Python 3

The leak arose from the string creation in this line:

    PyObject_HasAttr(counter, PyUnicode_FromString("__PCT_CTR_SHORTCUT__"))

This commit replaces the __PCT_CTR_SHORTCUT__ hack with code that
imports the _counter module and checks the appropriate types.
Counter: Deprecate disable_shortcut; Remove __PCT_CTR_SHORTCUT__ entirely

The `disable_shortcut` option served as a workaround in case
`__PCT_CTR_SHORTCUT__` leaked through a wrapper object, but I don't
think anyone actually used it, and it was a bad idea to expose it as
part of the public API.

Now that we do strong type checking inside block_template.c, there
shoujld be no need to ever use this option.  It's now a no-op, retained
for backward compatibility only.  It will be removed in some future
version of PyCrypto.
Add ABI check when importing _counter from block_template
Remove pointless 'error' attribute from stream ciphers

Many years ago, this was removed from block_template, but not from
stream_template.
whitespace
Py3k cleanup: Define PyInt_FromLong for Python 3.x and use it

This is the first of a series of changes that aims to reduce code
duplication between the Python 3 and Python 2 versions of the C
extensions.
Py3k cleanup: Define PyLong_SHIFT and PyLong_MASK in Python 2.5 and below
Py3k cleanup: Remove unused is_ALGobject macro
Py3k cleanup: PyModule_AddIntConstant
Py3k cleanup: METH_O
Py3k cleanup: staticforward and Py_TYPE
Py3k cleanup: PyInt_CheckExact & PyInt_AS_LONG
Py3k cleanup: PyType_Ready
Py3k cleanup: PyVarObject_HEAD_INIT
Py3k cleanup: OB_SIZE
Py3k cleanup: PyMODINIT_FUNC
Py3k cleanup: Always use tp_getattro
Py3k cleanup: PyBytesObject
Py3k cleanup: Remove PyModule_GetDict

Also rename _fastmath_module -> m for consistency