Fixing integer assumptions for factorial

This is related to #8723, but fixes a different bug - `factorial(n)` was assumed to be an integer (and therefore a real), even without the assumption of nonnegativity of `n`, which is wrong. This PR fixes that, fixes the relevant test, and adds a new test.

I've also made some minor PEP8 corrections.
Without my modification, this is my pep8 output:
```
sympy/functions/combinatorial/factorials.py:177:5: E129 visually indented line with same indent as next logical line
```