Upgrade Knockout to 3.1

Solves https://github.com/KSHSK/WAVED/issues/156

Release notes: https://github.com/knockout/knockout/releases/tag/v3.1.0

Initial testing looks like it doesn't break anything. Hoping to use the new allowValueUnset feature to solve the issue in https://github.com/KSHSK/WAVED/pull/143 that causes the dirty flag to become set because we needed to wait for the data to be done loading before setting the value of the field...which ended up happening after the subscription so the project gets notified of a change and thinks it's dirty.