Added the inside-outside algorithm to PCFG.

TODO: The inside-outside computation has *not* been tested for correctness.
Think about a unified framework for thorough testing, and implement unit tests
for all tree probability calculations.

Also added the root nonterminal component to CFG and PCFG + appropriate tests.
This corrects the previously wrong definition of PCFG. With the addition of root
probabilities, parsing accuracy has increased.