Add ability to merge changes, update javadocs, make lists returned unmodifiable since modifying them does nothing, add JSONifiable interface