When the buffer is modified, provide more specific information about what aspects of the buffer are modified. Handle this information in the widgets and update appropriately.

Fixes #16.