config: support list key path.

eg. 'list/@0' for the first list item, 'list/@last' for last list item.
'list/@before 0' to insert an item to the front of the list;
'list/@after last' or 'list/@next' to append an item to the back.
rime_api: add functions to manipulate complex structures in config.
config: GetItem("/") should return root node.
rime_patch: command line tool to create patches.
Merge branch 'feature/config_complete' into develop