Implement Abs._eval_is_even/odd helpers

fixes #8631
adding a special case for factorial