refactor voter::courseload() to return a result specific to the input election
removing unused fn; we are not going to enforce this constraint
relax validation on election start times
make use of excluded curric codes for determining eligibility
cleanup the top of ballot.php. Create logical, Moodle-y groupings of boilerplate. rename 'candoanything'. Remove redundant data in customdata. Refactor metadata check method to return useful info on failure
set defaults for excl_curric_codes; https://trello.com/c/luwjyZkn
https://trello.com/c/1rs3RQDW Don't let old elections be changed after the end_date
remove static link from form definition; move to ballot.php where it can be controlled by existing access filters (namely: election::readonly)
merge in refactoring and other work as described in preceeding commits