feat: introduce WebGL._replaceOutputTexture and WebGL._replaceSubOutputTextures to cut down on resource usage
feat: All supportable Math.methods added
fix: Safari not able to render texture arguments
feat: CPU gets a pipeline that acts like GPU with/without immutable
...it kind of snowballed from some needs
Fixes#521 - If `tactic` is not set, check precision allowed from WebGL, and automatically change based off needs, otherwise use value from `tactic`.
Fixes#535 - Internally check if texture from argument is the same as output, if so, clone this texture, and then clean it up after the kernel runs.
Fixes#536 - Normalize all declarations to non-destructured, and then parse
Fixes#537 - Change logic
Fixes#538 - Found the GL script that would work, and reduced the methods to use it
Fixes#539 - Found a better way of testing random, and this gives me an error for 1 in 10 runs, acceptable
Some refactoring for less duplicate code and documentation
fix: move `GLKernel.fixIntegerDivisionAccuracy` to `Kernel.fixIntegerDivisionAccuracy` as it has to do with typing
fix: FunctionTracer 'ConditionalExpression' needed `ast.test`
test: Add test for FunctionTracer 'ConditionalExpression' `ast.test` usage
fix: division type handling with `Kernel.fixIntegerDivisionAccuracy` true
test: Add test for division handling with and without `Kernel.fixIntegerDivisionAccuracy` true