Add is_real functionality for factorial, Fix issue #8658

Factorial function don't have the is_real functionality (check or real) to check this Assumption.
factorial(x) is not known to be real when  'x' is non-negative.

With this PR, user can check if the given factorial is real or not.
Fixes #8658 

Please note  that r is 'not integer' (no other info given)
So 'r' can also be Imaginary, so we can't say it's real or not.
That's why it returns None.