CURATOR-67 defer creation of serializer

Instead of immediately creating a new JSONInstanceSerializer we can
defer until build() is actually called. This lets users specify their
own serializers and avoids issues where there may be version conflicts.
I put the test in o.a.c.x.discovery.details so that I could use the package level access methods on ServiceDiscoveryImpl to verify the serializer class. If I move the package up, then I guess I can still get at it using reflection, or by increasing the visibility of ServiceDiscoveryImpl.getSerializer(). Your call.