Add array distribution plotting routines to fix demos. (closes issue #129)

Closes issue #129

Note that this adds matplotlib as an optional dependency, and a directory specifically for plotting routines, `plotting/`.