Fix a lot of problems in the parse function

Since it's confusing dealing with both `advanced` and... let's say `traditional` links, I've split the handling of each into separate functions. Also there's a lot of other little changes. 
Let's sort this out before going into the more complex category routing.