Fix implicit conversions to and from Datomic data

9fb4851 corrects ambiguous implicits that caused `ToDatomicCast[DId]` to fail.

This pull request improves the `Attribute2PartialAddEntityWriter` type class so that the handling of reference attributes is vastly improved. Now `Keyword`, `Long`, `DLong`, `TempId`, and `FinalId` are all valid types to write to a reference attribute and `SchemaFact.add` (and `Props`) will accept them. Similarly, any `Traversable` collection of these types is accepted for a set-valued reference attribute.