Progress on Mac compatibility

- Add `ExecuteInShell`
- Add error for `ParseXML`
- Add perl implementation for `UrlParts` and update return values