Add Validation State Change Events

Broaden the idea of FieldHolder's OnCardValidListener to send a valid/invalid
event whenever the data set's overall valid state changes. That is, if the user
edits a field to make it no longer valid, fire an invalid event - and then don't
send another event until the data becomes valid.

- Add unit tests for the validation event propagation.
- Update example app to prevent tapping the "Save" button if the data's not valid
(and display when validation events happen).
Merge pull request #2 from opentable/validation-events

Add Validation State Change Events