Fixed descriptor leak in convert engine.

if source file does not exists, `source.read()` on line 53 raises “IOError: No such file or directory...”.

### Descriptors:

* Line 51: `handle, tmp = mkstemp()`, handle – first file descriptor.
* Line 52: `os.fdopen(fd, 'wb')` – got second file descriptor.

After exception leave “with” block, second descritor will be closed, but first descriptor still “open”.