View lookup by association type

Allows you to specify list, filter and form views by association type / macro name (`belongs_to`, etc.) This allows for a default form behavior for `belongs_to` with a dropdown, and perhaps some other nice ones in the future.

I also did some refactoring of the `ViewLookup` classes.