Refactor out IRCTC specific code into irctc.py
Manage dependencies with pip and virtualenv
Use networknx for graph operations

This allows greater flexibility when choosing which factors to
prioritise when finding shortest path, by varying the cost function.

Add support for finding paths with overlap.
Update Readme