use logprobsum(); preserve order of rules; fix packed graph encoding; &c.

- disambiguation: switch to adding log probabilities in log space with
  fsum, which is more precise; cf. https://gist.github.com/andreasvc/6204982
- Grammar: obtain numeric IDs for non-terminal labels only from LHS,
  such that ``self.bylhs[lhs][n].no == n`` is now actually an invariant.
  NB: there is no langer a check whether a POS tag ever appears in the
  RHS of a phrasal rule.
- Grammar: correctly check whether weights of grammar sum to 1
- Grammar: correctly report whether the mapping to the coarse grammar is
  total.
- grammar: fix option packed graph encoding for DOP reduction.