[ new ] Cyclic lists using a pair of lists

* Encoding based on an idea evoked on /r/haskell [1]. We however keep
  the interface `CyclicList.hs` suggested to us in particular for the
  definition of `cfold`.

[1] http://www.reddit.com/r/haskell/comments/2dipr9/cyclic_lists_purely/
[ bug ] reverse was the identity on finite lists

* We have an ineffecient implementation right now:
  rev (x : xs) == rev xs ++ [x]