Add ocaml list-ops exercise

This is basically accumulate and strain with a few more functions that require a bit of thought (like concat, which won't work well with a left fold).

I've put this straight after bob since this exercise both requires little knowledge of OCaml and teaches important concepts (such as the value of tail recursion).