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 is the DiracKernel.
The various getMaterialProperty*() interfaces have been updated to
throw an error is stateful material properties are not allowed and the
user asks for them.

Note that only the MaterialPropertyStorage object knows if it has
stateful material properties, so we had to provide an accessor from
the MaterialData object which contains it that could be accessed by
the MaterialPropertyInterface.

Refs #2379.
Adding an expect_err test which demonstrates attempting to use a
stateful material property with a DiracKernel.

Refs #2379.