Ppx syntax extension

So, I think it's ready now. There is still a small opam issue (see https://github.com/ocaml/opam/issues/1572) but we can take care of that later. 

@diml : I added documentation and the code is ready to be looked at.

There is annoying point [here](https://github.com/ocsigen/lwt/blob/0ebf3b1b9e44cd0073075b42178bb51685c590a5/_oasis#L332) but there is no clean solution with oasis.

cc @whitequark
@gildor478 No, it does not, on two counts.

First, what we want is a way to copy `ppx_lwt_ex.whatever` into `$libdir/lwt/ppx_lwt`, so that it could be invoked using `ocamlfind lwt/ppx_lwt`, or be referred from META file using `ppx = "./ppx_lwt"`.

Second, $ppx_lwt doesn't work in ByteOpt/NativeOpt clauses; see the section `Executable test_ppx` just below in this very file.