Either Module - Deserializer and Serializer

Change request with Serializer and Deserializer for scala.util.Either
I think this is a little cleaner:

```scala
  def serialize(value: Either[_, _], jgen: JsonGenerator, provider: SerializerProvider) {
    def serializeValue(fieldName: String, value: Any) {
      jgen.writeFieldName(fieldName)
      provider.defaultSerializeValue(value, jgen)
    }

    jgen.writeStartObject()
    value.fold(serializeValue("l", _), serializeValue("r", _))
    jgen.writeEndObject()
  }
```

I would be interested to know why `defaultSearlizeValue` is OK here but there is a bunch of logic in `OptionSerializer` to deal with the underlying element type.