Ensure JsonNodes are ContainerNodes in AddOperation

Fixes a `ClassCastException` when `AddOperation` attempts to add to a non-`ContainerNode`. For example patching:

```
{
  "foo": "bar"
}
```

with the patch:

```
[ { "op": "add", "path": "/foo/f", "value": "bar" } ]
```

With this patch, `AddOperation` will throw a `JsonPatchException` in this case.

Thank you for dual licensing under ASL 2.0. :smile: