Make build image link to the build page
Add type safety in rich data handlers

Passing a non string to either the date or url handler caused an error, this
adds a type guard to the check and tests various data types.
Have the parsing be recursive rather than clever

Tried to do in line iteration, which caused issues with complex datatypes, now
just uses recursion to handle it (as it should have).
Add sanity to arbitrarily ordered data test

There is no guarantee the data will be in the same order in both strings, so
uses the `assertItemsEqual` test and splits the strings.
Add multi value support

Passing a list as a value for a key will properly create the string since HTTP
allows for a key to be reused by the `urlencode` method does not seem to know
this.