MEGA PULL REQUEST OF DOOM

OK, this is the last gigantic pull request, this syncs up Eli's develop with Vicki's which was sync'd with Dom's which means, with this pull request, Eli's branch should have everyone's changes.

After this pull request, we'll be moving to use GitHub flow https://guides.github.com/introduction/flow/index.html

Magfest 8.5 and magstock-specific changes that can't be swapped out via config file will have their own branches in here from now on.  I expect changes in these branches to be fairly minimal, and most things to be implemented as config options.

After this pull request is merged, mostly as-is, we should spend a bit doing some testing, get this thing really stable, and push it as the new master.