Find boxes using go/ast

This to replace the regexp.
This keeps the existing functionality; that is, it expects a string literal parameter for `(Must)FindBox`.
Resolving identifiers should be possible in most use-cases, but this is another story.