refactor authorization with cancancan
* adding cancancan
* abilities for guest users
* registered users can read requirements
* registered user can update his profile
* registered users can create proofs
* registered users can update thery own proofs
* admin users can manage all but cannot self-destroy
* authorizing controllers
* removing correct_user method, shadowed by cancan
* allow user to update his profile
* more specs for registered users abilities