Adds better Negotiate Support and 'smart auth'

Fixes a ton of issues with Negotiate/NTLM support
Allows for any HTTP verb, not just GET
now respects arbitrary headers
Supports both Negotiate and NTLM
smart_auth determines the correct auth scheme for the user

does not replace existing methods for now, only adds new ones for future use so as not to break any backwards comapt issues