Improve handling of invalid URLs.  Previously, saving an invalid URL wou...

...ld cause a 500 Internal Server Error, because we assumed we could parse it.  Now we don't assume that the input is valid.  Also adds inline validation to the Configure Jenkins UI.