(CFACT-114) Error handling and cleanup

Add error handling for UTF conversions; an exception is thrown if UTF
conversion fails. Also correctly release COM resources if an exception is
thrown during WMI initialization.

Remove wmi::release, as it's probably not needed and no good place to use
it.