Prevent partially initialized Bnd Workspace(s)

It is possible during the creation of a Bnd Workspace to have an
exception thrown, resulting in a partially initialized Bnd Workspace.

This change ensures that a Bnd Workspace will only be retained if it was
fully initialized, in the failure case it will ensure that the workspace
is closed.
Merge pull request #557 from ateirney/bndworkspaceinit

Prevent partially initialized Bnd Workspace(s)