Rewrite isMatPropRequested

The new version uses a separate ```std::set``` to which all material properties are added when then are requested via ```getMaterialProperty``` or ```getMaterialPropertyOld``` or ```getMaterialPropertyOlder```. This should fix and close #4323.