Extra tests and a number of minor bug fixes

I added extra tests to exercise more of the code. In doing so, I found a number of minor bugs which I have also fixed. These bugs include:

1. Setting attribute `list_delim` does not affect list dumps because it was not being used to separate list elements in `dump_as_list()`.

2. Setting attribute `max_length` as 0 doesn't shorten dumps as much as it should. I've made it so that `max_length` 0 results in `...`.

3. Object dumps for scalar ref objects appear as `Object::Name=\"scalar"`, but for array/hash ref objects, the `=` is missing. I've added the `=` so they are consistent.