Support for external stylesheets (both local and remote) via link tags with proper order of precedence.

Fix for failing test.

Factored out duplicate code when loading external stylesheets.

The external_styles parameter now has higher priority than <style> and <link> tags as requested.
Added a test for the above.

Updated __main__ with options for the method, base_path and external_styles arguments.
_load_external now always returns unicode. The encoding of remote content is determined from the charset of the Content-Type header.
_load_external now uses a with statement for more robust local file loading.
Test CSS file test-external-styles.css is now utf-8 to test correct utf-8 loading.

Items missed during rebase.