Refactor JS

Some changes, mostly structural:

* Refactored code to be OO instead of procedural
* Created wrapper classes for some of the IPython classes, e.g., NBDiffCell, to make certain variable accesses easier.
* Fixed #101 and #107 
* Renamed `merge_script.js` to `nbdiff.js` (same with `merge.css`)
* Created NBDiff namespace with all other classes exported under that. E.g., `NBDiff.Merge`.