Merge branch 'segfault-error-str3'

* segfault-error-str3:
  When using libvirt 1.0.5 (maybe earlier, not sure), and an exception is thrown from the node-libvirt, trying to inspect the "str3" property of the exception causes a segmentation fault 11 in node. This patches that problem by first ensuring the "str3" symbol is not null before passing it to v8::String::New, and adds the same guards to the "str1" and "str2" symbols as well as a precaution.
Merge remote-tracking branch 'upstream/master'

* upstream/master:
Change Domain::GetId so it only throws an exception when an actual error occurs
Instead of blanketly throwing an exception when virDomainGetId returns
-1, check to see if an actual error object exists in virGetLastError; if
it does, then throw the exception as normal, and if it doesn't then just
return null. This will allow the caller to handle a null domain id
without having to clutter up the code with try/catch blocks for
situations that might not be exceptional (i.e., the domain is simply not
running).
Merge pull request #22 from dohpaz42/domain-getid-noexception

Change Domain::GetId so it only throws an exception when an actual error occurs