Circular structure hashing + Date object handling

This mostly is @seifertd’s fix for #10.
I also modified the handling of Date objects, since toString() depends on the own time zone (see the commit message for an example).

Feel free to cherry-pick any of these commits if you prefer :)