SWIs for PathUtils
------------------

PathUtils_EnumeratePath
=> R0 = flags :
          b0  : if set, return all components of the path recursively
                if clear, just return the leaf components
=> R1 = pointer to path to process
   R2 = pointer to output buffer
   R3 = maximum length of buffer, or 0 to request length
   R4 = last context, or 0 for the first call
<= R0-R2 preserved
   R3 = number of spare bytes, or -ve length required if 0 on entry
   R4 = new context, or -1 if complete
   R5 = variable type that this value was expanded from
   R6 = depth expanded from

PathUtils_JoinPath
=> R0 = flags
          b0  : if set, append
                if clear, prepend
   R1 = pointer to path variable name
   R2 = pointer to value to join

PathUtils_RemovePath
=> R0 = flags (must be 0)
   R1 = pointer to path variable name
   R2 = pointer to value to remove
