Send an Accept-Language header for URIs we handle.

Until URI::Title is replaced this doesn't send it for the vast majority of URIs unfortunately.
Route all requests we make via one func

Caveat, URI::Title again.
Remove extra http request when canonicalizing URL and allow for all URLs
Only change URL if canonical header is sent
Only attempt canonicalize replacement if match succeeded
Swap image responses to earlbot code
Pass data around as a reference
Share parsed head
Removes URI::Title in favour of own code for HTML title.

URI::Title was already broken for us in most cases:
- Most special casing is no longer necessary, HTML title suffices.
- Twitter support has been reimplemented via API.
- New internal image support should accept more formats.
- Special casing that is necessary is already broken e.g. Google Calc/PDF.
- Would cause 2 GETs of same data.

However, support for HTTP Range has yet to be added.
Turns out that LWP::UserAgent automatically parses HTML <head>, remove HTML::HeadParser
Trim standard title
Move to LWP::UserAgent from LWP::Simple
Add support for limited retrieval from server
Don't attempt to strip non-existent title
Enforce max size for all requests