BoundaryConditions update to conform with FEMContext API update

This is mostly complete (@roystgnr, feel free to comment) and compiles against libMesh master and 0.9.2.2. However, the functions that take a `NeumannFuncObj` still need to be generalized. In particular,  `NeumannFuncObj` needs to be updated to return both a `RealGradient` and a `RealTensor`, which means templating. I'm leaning towards templating the whole class, but I could see wanting only to template the applicable member functions. @roystgnr - any thoughts? Once we decide, I'll make those updates and close this out (or we can merge this now and get #15 merged so we can compile against libMesh master and do a separate PR for the `NeumannFuncObj` business).