Introduced concept of 'DataViews' in dataviews.py

DataViews allow patterns that have been instantiated from Imagen (such
as 2D Numpy arrays) to be annotated with the appropriate metadata
(such as the pattern bounds). Dataviews add general support for
storing time-varying patterns.