+ test pathAsArray
* minor comments added
* minor changed.
* hook
  + when add a key in pre hook, the new triggerBefore/triggerAfter options can disable trigger the added key to prevent the endless loop.
  * join separator before precodec.encode on the operation, using prefix separator always if the key is string.
* [test] update unit tests.
Merge branch 'develop'