Extracted interfaces
Removed problematic string constant
Added On-Behalf-Of support

Usage: client.OnBehalfOf("user@domain.com").GetFolder(...)
Headers now cleared at appropriate time

The OnBehalfOf/SharedLink headers could be cleared prior to a retry of a
failed request.  This no longer occurs.