channel messages should be directed to someone

If we are replying on a channel, make sure to direct the message to
someone.

under() routes may not follow this rule, but under() routes are for more
interesting stuff.
rename variables to not conflict

How did this even work?
not all messages will have a channel

Messages sent directly to the bot via PM will not have a channel
fix tests that check for text that is not sent

I accidentally removed the "unlike" tests when I did the refactor to a
single test sub.
send the direct reply to the user, not ourselves
create new bot for every test for a clean slate

The previous routes were interfering with later routes, and I have not
yet designed the system that allows for adding/removing routes at
runtime.
unprefixed routes need the unaltered text
unprefixed routes should not check for no prefix

Unprefixed routes should be comparing the exact text no matter how it is
sent to the bot. If the text happens to contain the prefix, the
unprefixed route does not care.
unprefixed routes should work in private message

This is supposed to allow for routes like #perl's eval bot:

    preaction> eval: my $foo = "hello"; say $foo
    freyr> hello

Or ##javascript's eval bot:

    preaction> >> console.log( "Hello" )
    freyr> Hello

Allowing this in private message is the right thing to do
punctuation is optional when using bot's name