Detect whether terminal-notifier or notify-send are available on startup.

This way, the shell is not looking for the command every single time a message
is received from the ØMQ socket. While the frequency of received messages is
pretty much guaranteed to be low enough that this won't actually affect the
performance of the script, I think this is a cleaner way of handling the
different notifier programs.

The only downside of this is that if the user removes the notifier program while
the client is running it will spew error messages to stdout, but I really think
that should be the user's concern and not ours.
Fix messages/nicks that begin with [, {, (, < for terminal-notifier.

terminal-notifier's help text says "Note that in some circumstances the first
character of a message has to be escaped in order to be recognized." Trial and
error testing revealed that the four opening brackets listed above needed to be
escaped to be recognized properly. This was by no means exhaustive testing and
will not necessarily fix all cases, but should be good enough for the most
common ones.

Possibly of note is that [ and { are valid characters for beginning a nick,
while < and ( are not even allowed in a nick. Regardless of the fact that a nick
cannot start with ( or <, the same regular expression is used to fix both the
message and the nick.
Merge pull request #3 from torque/terminalnotifierfix

Code rearrangement and a terminal-notifier fix