allow for creating/applying patches to any object

use the underlying Json library to automatically (de)serialize the
objects the user is manipulating.
This way, we can make it almost transparent to the user that he is
working with lift-json