[46357451] init commit for disabling user

Signed-off-by: Henry Chen <hchen@vmware.com>
[46357451] user deactivation support without breaking the system

Factors need be considered:
1 the disabled user  cannot pass devise authentication
2 For active opening/interviews' edit, the disabled username should not show in the list which is for interviewer/hiringmanager/recruiter's selection.
3 For closed/inactive opening/interviews' edit, the already configured disabled user can still show in the list, and be set back.

4  Now only the admin can disable users, and the admin cannot disable himself/herself.
    In future if the user management privilege is granted to more roles, any user cannot disable himself/herself.
5 cannot disable an user when any of the following cases is true:
  he/she owns active openings as a hiring manager;
  he/she owns active openings as a recruiter;
  he/she owns scheduled/ongoing interview as an interviewer;
6 The admin can easily find the disabled user, and re-activate the account if necessarily.
7 When adding new user, if the email conflicts with any earlier email (even of disabled user), the system should prompt that "Email already exists". This behavior is unchanged.

Signed-off-by: Henry Chen <hchen@vmware.com>
Merge branch 'master' of https://github.com/vmw-tmpst/heroapp-LetsHire into deactivate
[46357451] user deactivation support without breaking the system

more code change

Signed-off-by: Henry Chen <hchen@vmware.com>
[46357451] user deactivation support

add more test cases to cover the check before the deactivation

Signed-off-by: Henry Chen <hchen@vmware.com>
Merge pull request #118 from Henry-CF/deactivate

[46357451] user deactivation support without breaking the system