Added ability to automatically output material properties 

There is too much, let me sum up...
- Basic documentation regarding how this works: http://mooseframework.org/wiki/MooseSystems/Materials/
- `Material` now contains an "outputs" option similar to `Postprocessors`, by default it is set to "none"
- `MaterialOutputAction` creates an `AuxVariable` and `AuxKernel` for each property (the properties may be limited using the "output_properties" parameter) if the "outputs" parameter is something other than "none".
- Currently three types are supported: Real, RealVectorValue, and RealTensorValue. These are output via the AuxKernels: `MaterialRealAux`, `MaterialRealVectorValueAux`, and `MaterialRealTensorValueAux`, which now all inherit from a common base class `MaterialAuxBase`.
- Patch also includes a few legacy output related clean ups


(#1189)