put experimental last to override Moo's warnings

Moo and Moo::Role both enable warnings, which re-enables the experimental
warnings categories that the experimental module disables.

Calling experimental->import twice is suboptimal. Import::Base should
find a way to fix this...
be more strict with IRC and joining channels

If we don't join the channels explicitly, they get joined implicitly
when we receive a message from them (for some reason, might have to look
into why).
under() routes now working

under() routes are the same as route(), but multiple under() routes may
be called for each method. After all the under() routes are checked,
then the route() are checked and one called, if any.