exception safety & IJulia history vars

This adds a variant of `jldopen` supporting a `do` block syntax:
```
jldopen(args...) do file
    ...
end
```
(similar to `Base.open`) to ensure that the file is closed at the end of the block, even if an exception occurred.  It also adds similar exception safety to `save` and `load`.

Also, it modifies `@save` to skip IJulia history variables `_+[0-9]*`.