added try-finaly blocks around compose operations

Contained in the finally blocks are the delete() commands. This fixes a
bug where exceptions raised during composing leave the plotting device
"open", resulting in a seg fault when new plots are made.

Note this is a stop-gap, although maybe a pretty good one.  There are
probably still paths that can cause a segfault.

A cleaner solution would be to make the compose work intrinsically
atomic.  This is hard I think without making the plotutils objects full
fledged python classes.