Jquery update migration (Part 1 of n)

First step in upgrading jquery and related libraries.

This PR introduces an update to jquery along with the jquery migration library which should allow anything not using jquery's internal API (which nothing _should_ be) to function as before.

There were a small number of places where internal jQuery functions were being used, this patch also fixes those.

jQuery UI did use jQuery internals though so that has to be upgraded simultaneously.

Some API changes in jQuery UI have forced changes in our code, this patch includes fixes for those as well. Tabs and Tooltip usage were the two areas in which this was necessary.

The intent is to make use of the migration library to ease the path of jquery upgrade so that the entire upgrade isn't a single PR. This process will complete with the removal of the migration library.

This is a lot of changes, I am expecting there to be many problems to be addressed rather than a simple review and merge. Bear in mind that I have intentionally not fixed any existing problems in this PR in order to compartmentalise what would otherwise be a enormous PR both in terms of code changes and functionality. I am also aware that there are warnings from the migration library that are caused by other libraries, those will be addressed when those libraries are updated.

It may require a _breaking_ tag, but hopefully shouldn't.

Trello Link: https://trello.com/c/tly4JAme/63-jstree-3

Testing
----------
There are no specific testing instructions because this is largely a library update. Ideally all facets of the web client would be tested. Multiple browsers would also be a good idea.

Additional Testing
--------------------------
This addresses jquery-migration library warnings originating in non-library code (libraries will be upgraded in another PR).

Mostly these are fixing the usage of jquery method 'attr' on properties: selected, checked and disabled. I have tested each one of these as I have moved it from 'attr' to 'prop'. It would be worth someone repeating this process for each of the changes in 5dc0c10 to ensure that this has been done correctly. Laborious I'm afraid.

c61421c fixes a problem with the deprecated $.browser usage. I tested this with and without firefox and I can not tell the difference so it is potentially redundant. If not, then someone perhaps someone more familiar with browser differences can tell me what this achieves and what browser capability is in question here. With that, I can then use $.supports to special-case it which is the recommended way.

3b06b07 is to be tested in PR #3051 and is just merged here because I then update it from attr to prop after the fix.