Add full proxy support

This is a continuation (and rebase) of #68 so far for coding standards and commit messages.