support contribution tokens
Created by: MegaphoneJon
This branch supports contribution tokens.
For purposes of simpler reviewing, I'm submitting all of these PRs as forks of the master branch. I'm keeping one branch with all changes myself, and will submit new PRs with resolved conflicts if/when conflicting changes are merged.