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. 
Why not return here? We got an article, we're done. Well, if we don't return then:
`menu-item/subcategory/article/some-random-crap` -> 404
If we do return:
`menu-item/subcategory/article/some-random-crap` -> same as `menu-item/subcategory/article` 
So I think it's better to return but I'm open to other ideas.