ENH: Small speedup of FFT size check

Use a bit-twiddling power of 2 check instead of repeatedly dividing by 2
ENH: Use floor division instead of float division

This uses from __future__ import division, but if n % c == 0, n / c == n // c
BUG: fix romb in scipy.integrate.quadrature

Routine romb for Romberg integration using 2**k +1 samples of a function
was only using 2**(k-1) +1 samples due to wrong ranges.
Renumbered the values R to the common textbook numbering scheme starting
with 0s. Note that romb with 2**k +1 should give the same values as
romberg with divmax=k. Or with 3 values romb is the same as simps.
Reverse Cuthill-McKee reordering of sparse graphs

Added the symrcm function that takes a symmetric graph in CSR or CSC
sparse format and returns an array of row and column permutations that
reduces the overall bandwidth of the underlying matrix.
Fixed PEP8 issue
Added original source information
reverse_cuthill_mckee & maximum bipartite matching

- Added more descriptive name for RCM function
- Made changes based on @rgommers suggestions.
- Added non-symmetric maximum bipartite matching function.
Fixed documentation error in reverse_cuthill_mckee
set dtype=int32 in maximum_bipartite_matching test
fixed dtype=int32 error in permutation arrays
reworked both RCM and MBM to use fused types
attempt to fix array type error
Add _reordering.c to gitignore
Added int64 indices tests
set np.ones explicitly to correct type
set type after multiplication
set type of row_match after multiplication
Removed unnecessary cimport of Cython
Fixed RCM int64 test
Fix for unsorted nodes

- Also set length of temp_degrees array to the max node degree of the
graph.