correct and improve SchemaFact.add/retract and SchemaEntityBuilder

The following should be invalid in Datomic
```clojure
[:db/add id :attr [a b c]]
```
However, this was previously permitted. This is now eliminated.

The typeclass Attribute2FactWriter is introduced to implement this, and it also has the bonus of being a more efficient implementation over Attribute2PartialAddEntityWriter.

Also, expand the methods on SchemaEntityBuilder:
```scala
+= (attr, val)
+?= (attr, optVal)
++= (manyAttr, coll)
++= partialEntity
```
Merge pull request #104 from pellucidanalytics/topic/fix-collection-values

correct and improve SchemaFact.add/retract and SchemaEntityBuilder