Implement universal module run_algorithms to run a list of independent modules which are algorithms.
1) Add module run_algorithms.py to generalise running any algorithm.

2) Partially clean up parse_input.py to do only what it's name suggests,
and divide other functionality into other modules.

3) Remove 'statements' as a global variable, for safety and modularity.
Major changes this time folks.

1) Completely tear apart parse_input.py. Change the main function in this
module to init, which returns a list of statements. Remove quite a bit
to other modules, so that this one only parses the input.

	i) Reduce bulk of the statement class so that it only contains
	the parsing information, and not algorithmic.

	ii) Create a new algorithmic module called alg_line_context,
	where the algorithmic parsing has been transferred to, by
	deriving a special class from statement just for this
	module.

2) Create the settings module, which ,for now,  contains just the list of
algorithms to use.

3) Implement the run_algorithms module, which runs all the algorithms
specified in the settings module, and does a multiplication of the values
obtained.

4) Implement the alg_line_context module. Use this module to show
how to create an algorithm module. Basically the run_alg function should
return a dictionary of user and pseudo-probabilities for a given
list of statements and the index of the unknown one.

5) The complete description of how to write an algorithm module and
how to use the run_algorithms module to run it, as well as recommended
design for easy debugging, will be added in a subsequent commit.

Good work for a day!
Changed algorithm.final_alg_prob to only need a list of statements,
which it can modify internally. Upcoming changes include cleaning up
the alg_line_context module to show exactly how an algorithm
module can be written, as well as including a Readme.
Fix parse_init completely
Added Readme
Update __doc and remove default arguments for run_algorithms.run()
Rename final_alg_prob() to run() and alg_prob to alg_lambda in
class 'statement', as it is more accurate.
Add module test_algorithm.py.

Usage: python test_algorithm.py filename

It tests the algorithm as defined in settings.test_alg. It prints
some previous messages as defined by display_scope. Then it prints
the unknown statement, as well as the alg_lambda for that statement.

Remove diagnostic printing from alg_line_context, as this job is
now done by test_algorithm.

Add diagnostic printing even to run_algorithms.py.
Updated Readme
Update Readme
Added create_sample_log.py

Signed-off-by: Vikrant Varma <vikrant.varma94@gmail.com>
Clean up and rename create_test_log.py
Move all logs , test files and answer files to a new directory 'logs'.
Fix create_test_log.py
Update: List of statements returned by parse_input.init()
Create directory structure in 'logs' and download logs of a couple of channels for testing.
Add total_time attribute to statement class, which is independant of hh:mm representation, and can be safely used to compare the times of two statements.
Merge branch 'readme'
Update documentation of parse_input.py to reflect new attribute 'total_time' of 'statement' class.