Clean up serializer slightly, accounting for depth/lite mode
Replace gross serializer constructor options with a builder