Avoid insertion from front of list in bidirectional_shortest_path.

This applies the patches provided in:
    https://groups.google.com/forum/#!topic/networkx-discuss/ULpDth-GAGU
Increasing allowed time for test on long path.
Add context manager for reversing a graph.
Removing timed test.

Let's leave unit tests for result correctness and not time complexity.
Make `reversed` always do a noncopy.
Use nx.utils.reversed in kosaraju scc.
Merge pull request #1153 from chebee7i/bidirect_patch

Avoid insertion from front of list in bidirectional_shortest_path.
Cleanup code a bit more.
Fix hash randomization issue in unittest.
Fix algebraicconnectivity documentation
Missed one more.
Add smoke test when there is no mapping.
Merge pull request #1159 from chebee7i/hashranderror

Fix hash randomization error.
Merge pull request #1156 from chebee7i/reversed_cm

Add context manager for reversing a graph.
Correct reversed docstring and add reference in documentation
Allow set_*_attributes functions to work with single attribute value.

Update *_edge_attributes functions to work with multigraphs.
Merge pull request #1166 from chebee7i/getset_attrs

Allow set_*_attributes functions to work with single attribute value.
Add METIS and wrapper

Some METIS source files are modified to fix build issues.