Improved web UI.

* Clicked IP now shows in a text field for easy copying.
* IP address search box supports CIDR.searches (127.0.0.0/8) which zoom to an area that shows the prefix.
* Refactored map.js to be easier to maintain.
* Changed addLayer() to accept an argument for if it is a base layer. This allows the same function to be used for adding IP map layers and the label layer.