Exit with status 3 if no failures but unreachable.

Provide hints to playbook callers that a playbook execution had
unreachable vs failures. 2 == failures, 3 == no failures, but
unreachable hosts. 0 continues to be all good.

I couldn't find any tests that would test this functionality (and I didn't create one, shame on me). Also I don't know whether this is documented anywhere or not, so I didn't add any.