Tests for UDA removal

I've had a go at writing some failing tests for UDAs which have had a value set, then have the value removed.

There's a problem which seems to come up when `marshal=True`, and I've noticed it in particular for numeric UDAs.

If I do this for a task which has a value of say `15` for a UDA `my_numeric_uda`:
```
task['my_numeric_uda'] = None
id, task = w.task_update(task)
```

Then as far as I can tell the expected Taskwarrior behaviour for the following should be a KeyError:
```
task['my_numeric_uda']
```

The different types of UDAs seem to fail on this front for different reasons.

I might have a go at fixing this myself, but I'm a novice so I can't vouch for the quality of these tests, or any fixes I might come up with. Please review carefully before accepting!

With task-2.4.0.beta3, if I modify the task with ``task SOME_ID mod MY_NUMERIC_UDA:``, it just removes it (and doesn't set it to ``null``).