Added ability to parse fragment identifiers (#) in a URL when using Router::parse()

The `Router::url()` method does recognise the fragment identifier (#) in the array and appends it to a string. However, `Router::parse()` does not recognise the fragment identifier and incorrectly appends it to whatever preceded it. 
E.g.
Incorrect:
```
Router::parse(/controller/action#fragment) 
// returns array('controller' => 'controller', 'action' => 'action#fragment') instead of
// array('controller' => 'controller', 'action' => 'action', '#' => 'fragment')
```
This pull request fixes the above issue.