Issue 3402

@phtaylor viewport callbacks + refactoring
Right now nothing is using that. However it could be important - the EvalContext is also providing that so I think it's relevant.