NumericVector::add_vector refactoring

Similar to #411 and #413

This was originally intended to be just another additional T* API plus
a refactoring; however, the new PetscVector::add_vector(DenseVector)
code path should be a performance improvement as well.

MooseBuild and BuildBot have both been happy with the prior refactorings, so I'm feeling confident.  If MooseBuild likes this I'll merge to master this afternoon, and if Buildbot is then happy too then I'll merge to 0.9.4.

These seem to be all the new APIs that https://github.com/roystgnr/moose/tree/optimizations needs, so we ought to be ready to release 0.9.4 this weekend.