Fixed bug #600: Service Check Timeout State always returns OK (0) status

Commit b8ad80519405cdf004229b04327bfb1f1d5fd9c introduced an issue where
current state was reset to the state of the check results after having
been adjusted based on the check results. This commit reverses that
change.

The commit also breaks the result adjustment out into separate functions
for both host and service checks. This should make reading and maintaining
the code easier.