Enhancing FEProblem::reinitMaterials() interface

You can now specify whether or not the 'swap' step for stateful
materials occurs.

Refs #2379.
Reinitialize materials before computing Dirac kernels.

Refs #2379.
Adding MaterialPointSource and associated test.

It is a DiracKernel test that uses a MaterialProperty, is has been
implemented by an earlier patch on this branch.

If uncommented, the print statement in computeQpResidual() should show
that the MaterialProperty is being evaluated at the DiracKernel point.

Refs #2379.
Make MaterialData::swapBack() more robust.

Only swap back if the MaterialData has been swapped in the first place.

Refs #2379.
Adding a test which demonstrates using a stateful material property
with a Dirac Kernel.  This will eventually be an "expect error" test.

Refs #2379.
Adding MaterialPropertyInterface::statefulPropertiesAllowed(bool).

This allows classes derived from MaterialPropertyInterface to declare
that they do not work with stateful material properties.  The only
class which currently uses this functionality are the DiracKernels.
The various getMaterialProperty*() interfaces have been updated to
throw an error is stateful material properties are not allowed and the
user asks for them.

Refs #2379.