Add auth module

@nedbat, @cpennington: moving from https://github.com/edx/edx-platform/pull/2664 to this PR; will close 2664. Only 2e06159 is new; you've reviewed all previous commits.

This is the master PR for the auth feature. Currently it adds requirements, an auth module, a settings mechanism, and the first parts of an API for auth providers. I don't plan to merge this PR until it implements the full feature, though I expect to solicit incremental reviews whenever adding significant functionality.

@jbau, this now implements the settings mechanism we discussed yesterday. Would you give commit 2e06159 a review, or suggest an alternate reviewer? Thanks!