Finish the ppx extension

`raise_lwt` is arguably "not in ppx spirit" but I think it's OK. At least it doesn't make things worse than with camlp4.
This description is far from being complete and considering the complexity of the function, it might be good to give more details. It will be needed in the syntax extension documentation anyway.