REF: ensure O(N log N) when using fft for acf

The numpy implementation will fall back to a O(N**2) version of the fft
in cases where it cannot factorize the array length, which can be a
increase in runtime of several order of magnitude. This uses the
_next_regular function from scipy to ensure that we always use array
lengths for which fftpack is optimized.
TST: add test for _next_regular

also copy the test for _next_regular from scipy
MAINT: Deprecate rank in favor of np.linalg.matrix_rank
COMPAT: Add np.linalg.matrix_rank for <= 1.7.1
ENH: Use NumpyVersion for version testing
Merge pull request #1383 from jseabold/deprecate-rank

MAINT: Deprecate rank in favor of np.linalg.matrix_rank
DOC: Fix link to wrong notebook [skip ci]
Merge pull request #1546 from jseabold/fix-example-links

DOC: Fix link to wrong notebook
DOC: Add links for build machines. Closes #1153 [skip ci]
Merge pull request #1154 from jseabold/testing-machine-links

DOC: Add links for build machines.
Merge pull request #1196 from kain88-de/fast_fft_acf

ENH: ensure O(N log N) when using fft for acf
CLN: Refactored so that there is no longer a need for 2to3

The codebase has been refactored so that it can exist in a single, unified base.
The strategy closely followed six and pandas.compat, but does not involve any further
dependencies.

The compatability location has been renamed form compatnp, which housed compatnp.py3k, to
just compat, and the main py3k compatability files are in __init__.py so that they can
be directly accessed

Conflicts:
	statsmodels/genmod/tests/test_gee.py
	statsmodels/nonparametric/tests/test_kernels.py
	statsmodels/sandbox/regression/tests/test_gmm.py
	statsmodels/tools/parallel.py
	statsmodels/tsa/vector_ar/tests/test_var.py

Conflicts:
	statsmodels/base/data.py
	statsmodels/tools/decorators.py

Conflicts:
	statsmodels/base/model.py
	statsmodels/compatnp/py3k.py

Conflicts:
	statsmodels/base/model.py
	statsmodels/genmod/generalized_linear_model.py
Rolled back absolute imports in api.py
Refactored compatnp to compat and moved all py3k to __init__. compatnp
is not the correct name, and it makes more sense for compat to be the
location of any backward/forward compatability code using compat for
the majority of the py3k code and submodules np (or numpy) for numpy and scipy.

Conflicts:
	statsmodels/base/data.py
	statsmodels/tools/decorators.py

Conflicts:
	statsmodels/base/model.py
	statsmodels/tools/tools.py
Final removal of 2.x print
Fixes reduce-related issues

Conflicts:
	statsmodels/base/data.py

Conflicts:
	statsmodels/base/model.py
Removes extra .items() and replaced with iteritems.
Corrected typo in import BytesIO
Many small fixes related to things missed that are not covered by tests, including
raw_input
Removed redundant parentheses that produced tuples in print statements
Rolled back a small error in the previous commit