Work Till Week3

This pull request has the following things 
1. UndirectedGraphs - This has been extended from nx.Graph to include functionalities which will be used in both MarkovModel and JunctionTrees. Also graph algorithms which are not a part of MarkovModels belong here.
2. MarkovModels - The entire infrastructure of MarkovModels and a few algorithms.
3. JunctionTrees - This is a very new module and includes very few functionalities. This is being built up right now and will be developed more.

PEP has been followed mostly. And I have written the test_cases for most of the functionalities included.
@ankurankan Yes, this is my own format and a very simple one. I wrote this just for the purpose of reading graph files for testing. (Don't intend it to be a public function, i.e. don't intend it to be used by the end-user). Should I move it to a appropriate place in readwrite package?