refactor algebra module
algebra, field and linalg were doing extremely similar things before...
this MR merges them into a single module algebra
- old
algebraandfieldare at the root of the newalgebra - old
linalgis nowalgebra::linalg
all references to these have been fixed in the rest of the codebase and the features have been tuned to work fine.