Generalized Web-Server support

Moved the Hapi-specific code out and added a simple way to replace the required functions.  This way passport stays lean yet can accommodate Hapi and other non-express web servers also.  

Obviously, I'm open to changes. Please let me know and I'll make the requisite changes on the Hapi end.  Thanks for the help, Jared!