wip-153: Added support for TTL and timestamp in the writer

I think this is overly generic and not very type-safe. I like the idea to have separate TimestampOption and TTLOption factory objects, but I don't like the fact they produce objects that might be accidentally compatible (here they are not just accidentally because one is using Int and another using Long). If TimestampOption was a WriteOption[Int], there would be no problem passing a TimestampOption where TTLOption is required. So, basically we've got nice dedicated option classes but they don't buy us any more typesafety than just very generic types like Int, Long, String.

Do we really need a common root (single hierarchy) for all Options? Why separate case class hierarchies are not enough?