Use separate exit codes for distinct error conditions

This allows for wrapper scripts to take action upon node failure.

See: ARAKOON-358
See: http://jira.incubaid.com/browse/ARAKOON-358