* Better sanity check of hostname when adding device. * Style fix. * clean() before hostname validity check. IP::isValid to support IPv6 addresses. * Even more checks to catch invalid input. * Long if-else, better error message. * Code re-arranging