Tagging: Fix sorting tables with tags

Since tags tend to consume a lot of space, we were adding them in
separate rows in the language table, but this broke table sorting since
the tag rows are sorted independently.

Now we keep the tags in a hidden cell of the respected row, and insert
the rows dynamically just after the table is sorted, and remove them
before sorting the table again.
Tagging: Swap the placement of Add tag and Hide tags

To be consistent with the project page
Tagging: Add support for filtering project TPs using tags

Fixes bug 3037
Tagging: Use Select2 in tag filtering UI

Fixes bug 3038
Tagging: Align the tags to progress bar column
Tagging: Use AJAX for filtering TPs in project overview

Fixes bug 3070
Tagging: Hide tags by default & save their visibility state
Tagging: Add a way for removing a tag from a TP

Fixes bug 3054
Attempt to fix column width change when tag are visible

Instead of letting the browser calculate the width of the tags cell, we
calculate it ourselves so that it does not change when whether tags are
visible or not.