dop parameter takes argument of dop implementation

current options are 'reduction' and 'doubledop';
this parameter makes it possible to specify new implmentations.
Add productions for unknown words before normalizing probabilities

- Use double in both numerator in denominator, to accomodate a sigma
  of e.g., 0.01 added by these productions.
- Gets sums of probabilies for each label closer to 1.
- Also, when testing whether probabilities for each label sum to 1,
  look at each label and report the one with the largest difference.
add ensureroot and labelfun parameters.
formatting
correctly highlight matching POS tags; rearrange LA table
detect grammar format so that PLCFRS parser may be used with bitpar grammar
runexp: lazy corpus loading
fixes & improvements for 'discodop parser' command.

- fix 'discodop parser' arguments when not using --simple.
- add --verbosity option.
- dump chart for sentences without a parse when verbosity=4
Rename parameter for outside estimates.

- fold getestimates and useestimates into a single parameter
- estimates can now be loaded outside of runexp
render trees as SVG in IPython notebooks
Fix bugs in agenda

- duplicate items could be added to the heap if initialized with an
  iterable containing duplicates
- items already in the agenda got replaced without preserving the
  original ordering through the count attribute of the old entry.
avoid issue with faulthandler & ipython notebook