Change urlparser to use Requests module

This adds a dependency for the module Requests
Please reinstall your dependencies
modules/urlparser: Log warning for exceptions

Also added BaseContext.logger as another convinience attribute
modules/urlparser: Beautification and Comments

Add/Remove some whitespace and add docstrings and
comments to the module.
urlparse: Organize code and tests

Moved the cod around a bit and wrote the regex into verbose format.
Also started some tests.
To run them, just run the file by itself.
Added ignore module. Closes #9

Very simple implementation.
Should be ebough.
Added the other bot to the list, as this is the reason we wanted this.
Fix messages not falling through to default handle

Some incorrect logic in the urlparse module was resulting in
the module always returning True resulting in the messages
never reaching the "Duh" and "don't understand" default handlers.
urlparser: Thwart denial of service attacks

Thanks to freestyl3r for pointing these out!

Someone could DDOS us, either than directing us to some firewalled port
in which case, our long timeout left us unable to do anything.

The other case of attack would be to direct us to a stream url, in
which case, the retrieval would never end.

For both of these cases, we added a HEAD request with a small timeout.
Right now it seems to not need anything else, as both attacks
throw an exception.

If needed later, we can use HEAD.headers to filter anything else out.
ignore: ignore commands to other bots

Commands to other bots typically start with a special character,
like ! or @.
It is best that we look at the first character of each line and
ignore those.
Greet people as they come into the channel

For now, we only have one way to greet people but that is going
to change with translations.
alternatives: Add a alternatives framework

In the issues, this was called translations
alternatives: Make the bot use them. Fixes #7

For now used only on join grretings, but more to come

Also started the infra to include alternatives from modules
Add template file for modules

This is it.
Use alternatives for some strings

Marked some strings as using translations
Read alternatives from JSON files

Bot reads all the JSON files in the src/alternatives directory
and merges the strings with its own.

To use it with fidibot-strings, make src/alternatives a symlink
Squash bugs in urlparser

- Some pages didn't respond when not given a known user agent
  so we are using the user agent of wget
- 0.5 seconds was too fast of a timeout for some slow pages
  5 is a bit more sane
- title as an html tag can have parameters. So we need to match
  things like <title id="asdf"> too. fixed.
Fail Module
modules: Allow multiline sends

connection.send couldn't send multiline messages
Handle them by splitting the message and throttling ourselves
modules: Broaden the multiline send

Moved Giannis' code to the module so both .send methods
share code.
Also escaped multilines for logs.
Nick Raptis commits