site_root uses HTTP_HOST header

Pretty sure this allows it to be whatever the client sees. For example,
this allowed it to work with pow.cx and also with the default Sinatra
localhost:4567, and sinatra run on a different port (rackup -p 1818).

It uses 'http://exercism.io' as a backup just in case this isn't
always set (might depend on the server, IDK).
Merge pull request #974 from JoshCheek/smarter_site_root

site_root uses HTTP_HOST header