Fix a ValueError when no port specified

@jzoldak Discovered this while fixing up the E2E tests.  I refactored the test suite to use `assert_raises`, added a test case for when no port is specified, then fixed the bug in `WebAppUI.validate_url`.