Matrix assembly
- Enables assembly of matrices for eigenvalue analysis and block-implicit time integration with expressive syntax in matrix construction and arithmetic.
- Enables specification of a subset of variable and right-hand side indices in the matrix, and allows variable index =/= rhs index for control of matrix structure.
- Removes dual time oscl ad hoc sens test in favor of a test that builds an assembler through a product of assemblers, and tests permutations of variable, rhs, and primitive variable orderings.
- Adds an 'ecology example' to demonstrate how the new dual time integration and matrix assembly can be used.
This removes the chain rule assembler and in-expression matrix mod code that Zodiac depends on - the 'better assembly' merge request in Zodiac removes this dependency.