Merge branch 'markov' into issue200
checks for self loops and cycles in TreeCPD
changed representation of multivariable nodes in TreeCPD and improved docs
[refs #200] adds tests for TreeCPD and some improvement in code
[fixes #201] adds tests for TreeCPD
[refs #200] minor changes
[refs #201] tests for TreeCPD
updates TreeCPD tests according to the new representation
[refs #201] tests for multi variable nodes
minor change
changes in to_tabular_cpd method
Merge pull request #209 from ankurankan/dev

minor changes
Merge pull request #211 from ankurankan/requirements

updated requirements
Merge pull request #206 from ankurankan/issue200

Fixed TreeCPD and RuleCPD issues
Refactoring:
    - Moving BayesianModel, MarkovModel and NoisyOrModel to new module models
    - Changing the tests accordingly
Refactoring:
    - Changing Exceptions module to exceptions module
Refactoring:
    - Changed Factor module to factors
    - Removed _factor_product.pyx
Refactoring:
    - Changed Independencies module name to independencies
Refactoring:
    - Removed MarkovModel module
Refactoring:
    - Modified tests of Factor and Independencies according to the previous
      changes made