add some plot tests
plot() improvements

- Better handling of complex arguments.
- Better handling of matrix arguments.
- Merge `plot(func, a, b)` behavior into main plot function, and remove
  `plot([func...], a, b)` functionality (closes #146).