Plane class

# TODO

- [x] test coverage
do you just mean `[i for i in k.args if not i.free_symbols]`?  (`is_constant` can be a very expensive function)