Improve and refactor NilCheck

- Detect NilCheck for `when` with multiple conditions
- Decouple NilCheck smell detector code from Sexp
- DRY up NilCheck node finder code
I agree. The Reek codebase seems ambivalent on how stuff like this should be handled. Sometimes, there's a constant, sometimes, there's a literal. We should probably converge on a single style. Any thoughts?