Add element type argument to (with-result)

Before, (mref) and everything else that used (with-result) couldn't return
complex results, or anything else for that matter.
Completely revamp plotting

Hooray! long overdue and needs explaining in the documentation
Fix silly loop boundary conditions
Fix silly matrix boundary conditions