Add elastic free energy material

Adresses #4269. 

This PR finally adds ```tensor_mechanics``` as a dependency to the ```phase_field``` module. The reason being that the ```DerivativeBaseMaterial``` is in ```phase_field```, and the material class generates a free energy for a phase field calculation, but it uses the ```RankTwoTensor``` class from ```tensor_mechanics```. One alternative could be moving the tensor classes into framework.
Wow, Cody. That was a low blow. :-(