don't save note if no changes made (dae/anki c44cf32)
 Cleanup of Note.java. Update up to libanki 2.0.23

- Reorganized code to better match note.py for easier comparison.
- Use objects instead of native types in some parameters/return values. This allows us to use null as a counterpart to python's None instead of using 0s.
- Added asserts.
- Fixed tag deletion (don't modify list while iterating it).
- Updated CardEditor's dupe checking to use the libanki return values.
Merge pull request #293 from hssm/libanki-cleanup-update-2.0.23

Update Note.java to match Anki 2.0.23.