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.
1.5.7

On Thu, Jan 1, 2015 at 4:50 PM, Sergey B Kirpichev <notifications@github.com
> wrote:

> In sympy/functions/combinatorial/factorials.py
> <https://github.com/sympy/sympy/pull/8727#discussion-diff-22400051>:
>
> > @@ -174,7 +174,7 @@ def _eval_is_positive(self):
> >
> >      def _eval_is_real(self):
> >          if ((self.args[0].is_negative and self.args[0].is_noninteger) or
> > -           self.args[0].is_nonnegative):
> > +                self.args[0].is_nonnegative):
>
>  Without my modification, this is my pep8 output:
>
> pep8 --version?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/sympy/sympy/pull/8727/files#r22400051>.
>