ENH: scipy.special information theory functions
TST: remove negative inputs
TST: adding test cases for COO sum_duplicates
ENH: adding sum_duplicates method to COO matrix
adding has_canonical_format to COO matrix
fixing build errors
incorporating @jaimefrio's vectorized version
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
MAINT: attempt to improve svds of singular matrices, passes existing tests
MAINT: sparse svd passes new tests
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.
ENH: Added discrete Lyapunov transformation solve
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
MAINT: simplify code and tests for sparse singular svd
ENH: avoid repeated matrix inverse

The `sum_cov` term doesn't change, so it's faster to use a factorized version and solve.
ENH: Add ext parameter to UnivariateSpline call

Pass parameter to fitpack.splev to control how to handle out of range
evaluations. Added test to scipy/interpolate/tests/test_fitpack2.py.

See ticket 3557.

closes gh-3557
CLEAN: Documentation and style improvements.