Make eigen executioners more modular

Most of the changes are just shuffling codes around. Except two things:
1. abandoning the check point enums so that the output times are sequential, like '0 1' instead of '0 3'. This causes regolding several exodus files. Note that only times are changed in these files. Nothing siginficant;
2. re-interpret one parameter `check_rel_tol` of NonlinearEigen. This does not cause regolding because all the tests are using a tiny value of it and it does not play a role.