Add support for tags

This adds support for tags in NIPAP as described in #190.

The database is updated with two new columns; tags and inherited_tags,
both of which are of the type text[]. inherited_tags is a list of all
tags that the parent prefixes of a prefix has.

For example, 1.0.0.0/8 has the tag 'foo'. 1.3.0.0/16 has the tag 'bar'
and will have 'foo' in its inherited_tags. 1.3.3.0/24 doesn't have a
direct tag but will have both 'foo' and 'bar' in its inherited_tags.
The population of inherited_tags is handled by a new database stored
procedure called calc_tags() and is run by a trigger on the ip_net_plan
table.

The backend has a new function to list tags, but as the tags are so
simple at this point, we don't offer any other functionality. Ie, it is
not possible to add or delete a tag - it is performed implicitly by
adding or removing it to a prefix. The search_tag() function by the
backend can be used by the web UI/CLI for (tab-)completion of tags.

Functions returning list of prefixes have been updated to include the
tags and inherited_tags columns while the search_prefix and
smart_search_prefix have been further modified to handle tags.
smart_search_prefix will interpret anything that starts with a hash '#'
as a tag and will match against the tags or inherited_tags column. A
search for '#foo' will thus return all prefixes which either directly
have the tag 'foo' or if they have it indirectly through the inheritance
of it from a parent.

Neither the web UI nor the CLI will list the tags associated with a
prefix but instead only display a small icon (in the web UI) or the
number of tags (in the CLI). A mouse-over tooltip lists the tags on a
prefix in the web UI while a more advanced tag widget is used to edit
the tags on a prefix.

A new test suite case has been added related to tags. The new test case
is specifically focused on tag inheritance.

Tags are represented by a new class in Pynipap and while this is not
necessary for the time being, I foresee that we will add more attributes
to each tag at which point it is convenient to just add them to the Tag
class. Backwards compatibility hopefully won't be an issue.

Part of #190.
Add upgrade file to package
Let Travis build deb from source

Let Travis build deb packages from source and install those instead of
pulling debs from the official NIPAP repo. This tests that the package
building works as well as the installation scripts!

Modification done to the database will also be included in the setup
instead of the potentially old database structure that the stable NIPAP
build ships with.
Sort tags in alphabetical order

Tags are now sorted in case-insensitive alphabetical order, both in the
CLI as well as in the web UI.

Part of #190
Merge branch '190-add-labels'

Conflicts:
	nipap-cli/nipap_cli/nipap_cli.py
	nipap-www/nipapwww/controllers/xhr.py
	nipap-www/nipapwww/templates/prefix_edit.html
	nipap/nipap/backend.py
	nipap/sql/ip_net.plsql
	pynipap/pynipap.py
	tests/test_cli.py
	tests/xmlrpc.py