Language refactor; semantics changed

1. We use a special monad-list for our query results
2. We don't abandon the whole query in case of one anomaly, we just
   abandon that branch
3. We define GraphQueries, GraphMutations, and GraphPatterns which has
   injections for the former two.
Update graph of the gods example