Added Lists, Dicts to serialization code

I did not do != 0 comparisons for dicts because that's confusing. I'm not convinced we need that.

I also did not implement byte-level dict comparison. I'm still not sure why you implemented it.

I'm still not quite sure why we need to have 1:1 mapping between sorting based on raw bytes & by higher level datastructures. The only thing that's important is that things that are equal as higher level objects remain equal as when represented as a bytestream...how they are sorted relative to other keys seems to not be important. Is there some detail I'm missing?