Introduce Trident SerializerFactory and Kryo serializers

Some topologies use Trident-State to store intermediate data as POJOs which are then transferred downstream to other functions or aggregators. It doesn't matter how these POJOs are stored as long as it is efficient. 

Storm uses a Kryo serializer to serialize the POJO when it is part of a Tuple and requires #registerSerialization be called on the topology configuration. This change enables the same Kryo serializer configuration to be used in a Trident Serializer.