Several fixes in ad_conv_dehex()

Testing whether we need to perform dehexing was done by a simple
strchr(':'), thus names only containing a single ':' would trigger
dehexing even though they might not contain the relevant strings
":2e" or :2f".

Also fix a ressource leak in bfindreplace() and simplify the
check whether a rename took place in enumerate.c.