Add IP vhost support

This commit adds support for IP-based vhost and name-based vhosts
listening on specific IPs.

The use of IP vhosts in combination to non-IP vhosts can lead to
conflicting Listen directives, so the `add_listen` parameter has been
added.

The `port` attribute is no longer required, as IP-only vhosts require no
port (though at least on Listen must still be declared).