FEMSystem::nonlocal_stuff()

The goal of this branch was to make it easier to play with some kinds of SCALAR-variable equation coupling in FEMSystem.  Along the way there's been some significant refactoring, though.  I'm not nearly done testing everything yet, but it's in shape enough for others to look at and for automated regression tests to be run.