Add support for multiple parameters

Adds support for multiple parameters, such that any of the following are valid:

```CODE
[img]www.example.com/example.png[/img]
[img="this is a caption"]www.example.com/example.png[/img]
[img="this is a caption"  height=200 width=500]www.example.com/example.png[/img]
```

All of the unit tests still pass, but the output of ElementNode::getAttribute() has changed slightly. Now, instead of returning a string, it returns a map of attribute names and keys. The tag name itself is always one of the keys.