ElementPropertyReadFile src and test #4066

UserObject to read element properties from file. Input can be element based or grain based.
I would prefer that you use the MooseMesh::minPeriodicDistance() instead of making your own. You'll have to modify it to handle bare points like this though since the version in MooseMesh takes a variable index to see if the calculation should wrap the around the edge or not per variable.  We could either create a second version of the function that just takes points and skips the lookup or maybe something else more clever.