added comments active_trail_nodes function
.idea added to .gitignore
Changed condition on _all_parents_mentioned to condition on _no_missing_parents and _no_extra_parents & same for states
Changed start_node and end_node in add_edges() to tail_node and head_node respectively. (Shikhar)
Changed get_parents to return a list instead of a generator
Changed _rule_for_parents to return list instead of generator. Added TODO to make it into a generator.
Changed _rule_for_states to return list instead of generator. Added TODO to make it into a generator.
Changed get_states() to return a list instead of  a generator. Added TODO to make it into a generator.
Changed get_parents() to return a list instead of  a generator. Added TODO to make it into a generator.
Added marginal_probability()
Changed marginal_probability function to multipy on sparse matrix