Implement legal_voters adding/editing/deleting

This allow the admin to restrict the election to one or more FAS groups
Voting to an election requires CLA+1 at minimum
Use safe_redirect_back instead of forcing the return to index
If there are legal voters and the user is not one of them, redirect him/her back
Add test for the redirect from the voting page is the user did not sign the CLA
Fix the @login_required to check to cla_done and groups > 0

This commit fixes @login_required that was checking cla_done and returning
an error message about CLA+1.
We now check cla_done and groups > 0 and report an appropriate error message
in both cases.
Fix the unit-tests so that the FakeFasUser used has at least 1 group

And fix checking the error message with cla_done = False
Add test checking the error message if the user has 0 groups
Specify a group of user allowed to vote on election #3
Adjust the tests so that the FakeFasUser is part of the group allowed to vote
Add test for editing an election with legal voters

These tests are checking how the application behaves when we add or remove
legal voter groups
Add test checking the behavior when the user is not part of the LegalVoters
Split the tests for editing admin groups or legal voters into their own method
Cover adding admin groups when testing admin_new_election
Avoid adding empty legal voter groups
Merge pull request #25 from fedora-infra/election_voters

Election voters