Optimizations in __virtual__ func for rh_service.py

This keeps the data type coercion from being run multiple times, and
cuts out splitting and indexing by simply coercing to float.

% python2 -m timeit -n 1000000 'int("6.5".split(".")[0])'
1000000 loops, best of 3: 0.676 usec per loop
% python2 -m timeit -n 1000000 'float("6.5")'
1000000 loops, best of 3: 0.202 usec per loop
Move osrelease check

This keeps it from being executed if the OS is not one of the supported
ones. It also wraps the function in a try/except to account for possible
non-float strings.
Merge pull request #13767 from terminalmage/optimize-rh_service

Optimizations in __virtual__ func for rh_service.py