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
reg: Clean up reg_delete
reg/tests: Add query tests
reg: Implement query functionality