Prevent stack overflow in kbest; fixes #41

- add depth limit to kbest.lazykthbest, prevents endless recursion due
  to cycles of unary productions.
- inline lazynext in lazykthbest, avoids unnecessary mutual recursion.
- remove cpdef and inline attributes from lazykthbest.
plfcrs: add unary cycles to chart

derived edges were not added to the chart if the item was either
already in the chart with a better or equal weight.
this prevented unary chains from being recorded.
formatting
simplify RankedEdge hash function