fixes & refactoring

- pruning of PCFG => PCFG and PCFG => PLCFRS with posterior probabilities.
- default start symbol is now defined when Grammar object is instantiated
- moved PLCFRS and PCFG parsers to separate files
- eval.py: fix closure of equivalent labels / words
- mergediscnodes: actually use indices produced by markorigin; the ambiguity
  in VP*0 VP*0 VP*1 VP*1 is resolved by assuming FIFO order, but opposite
  bias might be better.
- separate byte strings & unicode strings more
  (anything without words is preferrably in byte strings, e.g., parse trees)
- option to append function / morphology tags to non-terminal labels
- allow ParentedTrees in more places (binarization, splitting discontinuities,
  fragment extraction, &c.)
- some bikeshedding to raise the pylint score (variable nawes with more than
  two letters, all caps globals, &c.)