Restore index.d from git history.
MatrixStack.push and pop now pure nothrow again. Throwing AssertError instead, since it's considered an unrecoverable error to cross the bounds of a matrix stack.
BREAKING CHANGE.
- gfm.math.frustum was merged into gfm.math.shapes.d
- gfm.math.solver was merged into gfm.math.funcs.d

Replace: import gfm.math.frustum;
by: import gfm.math.shapes;

Replace: import gfm.math.solver;
by: import gfm.math.funcs;