(Issue #16) Variable change notification support.

- new api now accepts functions and treats them as callbacks for change notifications
- solver batches all changes per solution and notifies callbacks
- currently has minimum information set: we could include old values, notice when a variable is new, etc.