Observers

When we observe a Type instance, the observer must implement a method onchange to deal with the changes.

var person = new Person({
	firstname: 'John',
	lastname: 'Johnson'
});
person.addObserver({
	onchange: function(changes) {
		// handle changes
	}
})

Work in progress.