Initial attempt at computing individual block matrices simultaneously

@YaqiWang This is it.  This is what you've been waiting for.  You can now compute as many individual Jacobian blocks as you like with _one_ sweep through the mesh.... instead of one _per variable_!  The more variables you have the bigger the difference is...

Here's timing for the test I checked in (has 1000 variables)...

Before:
```
compute_jacobian_block()    2000       250.6622    0.125331    250.6622    0.125331    99.03    99.03
```

After:
```
compute_jacobian_block()    2          3.8598      1.929902    3.8598      1.929902    61.58    61.58 
```
Nearly 100x faster.... and that's just with 1000 variables.  The savings will be huge at 10k+ vars...

I'm marking this as under development for right now because I haven't tested with the Herd yet and I suspect there will be some issues with Rattlesnake...

Refs #3024 #3783