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.
Added RCM test

Test to verify node reordering works properly.
call np.max instead of max in rcm
Merge pull request #3751 from nonhermitian/master

ENH: sparse.csgraph: Reverse Cuthill-McKee and Maximum Bipartite Matching reorderings of sparse graphs