Update spectrum.py to use scipy.linalg
Split matrix conversion functions into new module
Simplify import statements
More efficient to_scipy_sparse_matrix

Doesn't convert to LIL format
Convert laplacian and normalized_laplacian to sparse
Switch adjacency_matrix to sparse
Update incidence_matrix to sparse
Replace the graph copy in cycles.simple_cycles from a proper deepcopy (which copies extra data) to a shallow copy that only copies the graph structure.
Changed to the iterator function to save time & memory.
Documentation for components change to generator.

Addresses #964
Modify examples that use GCC

Fix to use generators.
Doc formatting fixes
Merge pull request #1018 from hagberg/connected-api-change

Documentation for components change to generator.
Merge pull request #1019 from hagberg/doc-fixes

Doc fixes
Merge pull request #1017 from tmr232/master

Make the copy inside simple_cycles a shallow one.
Use "left eigenvector" (in-edges) in centrality

Change both Katz centrality and eigenvector centrality for directed graphs to use "left eigenvector" centrality (in-edges).
Use G.reverse() to get out-edge centrality.
Merge pull request #1020 from hagberg/left-eigenvector

Use "left eigenvector" (in-edges) in centrality

Fixes #1016
Merge remote-tracking branch 'upstream/master'
Merge branch 'master' into use-sparse-matrix

Resolve conflicts in eigenector.py and katz.py due to switch to sparse matrix in adj_matrix.

Conflicts:
	networkx/algorithms/centrality/eigenvector.py
	networkx/algorithms/centrality/katz.py
Use todense() to match adj_matrix