BUG : instantiate fall-back writer

fixes #2651

If the a string is passed into save as `writer` the code tries to
look up a writer with that name and create it.  If a writer with that
name is not in the registry, it is replaced with the name of the first
writer that _is_ in the registry, but not an instance of that type.