Fix field draw priority

Tidied up some field class interfaces while I was at it, the last commit is the only one that changes any behavior.