SUBDOC: cleanup operations code

This allows the helper functions to do a bit more work, and thus make
the actual operation code clearer.

Change-Id: I9f5c510a06e295cdcb78563ea37beaa45884efd9
Make sllist operations conform to aliasing rules

Change-Id: I4f7d4d0f295231fcf8885ceccf6317bf7d095785
SUBDOC: more arithemtic tests

Change-Id: Ib7329db0f67056f78a2f734af383052b42cd61f0
SUBDOC: Remove is_direct_parent field

Change-Id: I3f9e733d9225abf3c33ac92a3ccc3f36ed3665df
SUBDOC: Implement ARRAY_ADD_UNIQUE command

Allows to insert a value into a list and ensuring the value is unique.

Change-Id: I03ebed96d21290372c85777f636a886cb264e003
SUBDOC: add value validation

This feature ensures that a successful operation will never cause the
document to result in becoming invalid JSON.

Change-Id: I4e5dca1bce925278c485d7686af970db835ec28e