path: added parse() and format() functions

The parse() function splits a path and returns an object with the different elements.
The format() function is the reverse of this and adds an objects corresponding path
elements to make up a string. #6976