misc cleanup and array work

- switched to top-level typedefs for cleaning up cmd-line specified
precision
- add logic to pass array sizes into functions for functions that don't
know argument sizes