reg/tests: Test for integer overflow
reg/tests: Test REG_NONE
reg: Add system error printing function
reg: Add sane_path function to do preliniary key validation
reg: Add check for multiple backslashes at the end of the key
reg: Add path/key conversion functions
reg: Add wchar/type conversion functions
reg: Add wchar/raw data conversion functions

In the case of REG_SZ and the like, it may seem like the functions
perform an unncessary copy of the strings which should already be
in memory ripe for the taking.

However because these functions handle more than one type of data
the calling function needs to be able to free the data afterwards.

Simply returning the input string would result in a function
freeing one of it's own parameters, so we make sure to return
new memory by making a copy.
reg: Clean up reg_add

You'll notice that bad value input leaves a zombie key after this
call, but this is consistant with native.
reg: Clean up reg_delete