Add constructor for views.
Update synthesized view to use the generic constructor.
Improve comments.
Update test for synthesized view after switching to view constructor.
Remove useless __index in view constructor.
Fix a stack overflow in type when called on nil with a valid type name.
Add iterators over data and views.
Add a length operator to the synthesized view.
Use self instead of data for the error, as error already obtains the raw data.
Add a view to define callbacks on observed fields.