Rewrite of geometric algebra

Continuation of https://github.com/sympy/sympy/pull/1937 (somehow I could now open a PR against that branch, so I am opening it against master).