Fix handling on unsupported seeking.

The problems were two fold.  Firstly, if the stream indicated it didn't support seeking by returning -1, the class that converted this to a `ULARGE_INTEGER` thought that was nuts and asserted.  We had to convince it it was OK and it could relax with a 0 worst-case fallback.

Secondly, if the stream instead threw an exception from `seekp`/`seekg` the class meant to set the out position in all situations would try to call `tellp`/`tellg` which, of course, also threw.  An exception thrown while unwinding another exception is fatal in C++ and it would terminate the program.  Ooops!  Now we swallow the exception and convert it to a streampos of -1.