OAuth login

@JeroenDeDauw could you have a look at this? Please ignore everything under `/libphutil`. It's kind of a pain but I had to check it in since they do not support composer...
This `with` function is very cute