Add @Context to shorthand assign and cast a ViewContext

Also cleaned up other annotations, moved static methods into
AbstractView, and added a ReflectionUtil class to help read the fields
from a class and its parent classes.