Implements stage deployement and cleans up other stage code; adds tests

Neither of "http:/example.com" not "http:example.com" are valid urls.  That some browsers will render them is unrelated to their correctness against a url validator.  The intent of this code was not actually validation but convenience.  We may at a later point introduce django forms, but that is out of scope for the current changes.