Added more thorough output for an error case in GDAMinimumRule.
Refactored Solution/BilinearForm to allow BilinearForm subclasses autonomy in terms of the way the local stiffness contribution is determined.  Bubnov Galerkin would be possible, for example, or setting up a CrsMatrix to store the IP matrix before inverting it to determine the optimal test functions (the latter may actually become the default).
Added a cap to maxRowSize() in Mesh.  The original was indeed an upper bound, but not a sharp upper bound, and for 3D we end up with some huge allocs without this.  The cap is not the final solution; ideally, we'd determine the precise number of nonzero columns for each row, and communicate that to Epetra_CrsMatrix (which is where the mallocs are happening).
Added some timing code to BilinearForm.
Added variants to LinearTerm::integrate() that will integrate into an Epetra_CrsMatrix.  These are not yet tested.