Update geo_homogeneous test, add eval() to PermutationMatrix.
It's the test that's broken, not the functionality. The problem is
returning an expression involving Random(). Every time the original
expression was evaluated, it generated a new random vector, triggering
different results in the comparison. Explicitly valuating the random vector
first before calling .homogenous() fixes this.
Also added an eval() method to PermutationMatrix for consistency with
DenseBase. Otherwise, you would need to call different functions
on different expressions to express the same thing.