factorials:included check for real value and improved tests

Closes #8658 .
Added check is_real for real value which returns true for positive integers
and non-positive non-integral reals .Included tests for is_real and improved tests for
is_integer and is_positive by including checks for non-negative integers and non-integer
and non-positive reals .