Add --host flag to prefix URLs and allow proxying

When Grove is invoked with the --host flag, it uses the string supplied
as the prefix for all links. If it is not supplied, the req.Host field
from the incoming request is used instead. For example, consider the
following.

    grove ~/dev
    ->
        http://localhost:8860/path/to/repository

    grove --host example.com ~/dev
    ->
        http://example.com/path/to/repository

    grove --host example.com/grove ~/dev
    ->
        http://example.com/grove/path/to/repository