DeleteValue & DeleteSubkey now return true even if parent doesn't exist
DeleteValue & DeleteSubkey now return true even if parent doesn't exist

Keys really serve no purpose in and of themselves, and are often
mere vessels to carry out operations on their contents.

By enabling "return true;" from these two functions, which
coincides with their behavior when the *value* or *subkey* doesn't
exist before the operation is called, we enable this code to
function more seamlessly.

e.g. this now works:

if (!registry.GetSubkey("Does\\not\\exist").DeleteValue("Hello"))
{
	logger.Error("Failed to remove Hello key!");
}

Whereas w/out this functionality, that could would have to look
like this:

auto regKey = registry.GetSubkey("Does\\not\\exist");
if (regKey.Exists() && !regKey.DeleteValue("Hello"))
{
	...
}

Which I think isn't worth it. It's the same reason that the
GetSubkey() function returns a key and not a bool, despite the
fact that all other API functions do and then pass their result
by reference via a parameter: to enable the coding paradigm
above.

neosmart/hivexx