reg.exe: Sanitize key paths in main

Checks against remote host and strips backslashes from the start
and end of the key name to make parsing easier later on
reg.exe: Add path/key conversion functions

Functions to get the key, root key, and root key name string from
a string sanitized by sanitize_path
reg.exe: Add wchar/type conversion functions
reg.exe: Add internal error string
reg.exe: 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.exe: Implement query functionality
reg.exe: Clean up reg_add
reg.exe: Clean up reg_delete