insertVertex, insertEdge return the graph

Also removed runGraphEngine because it makes no sense for impure graphs
WIP 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 intend to define the GraphMutation monad, and then pair it with
   GraphQuery under Edward Kmett's monad products module to get what
   shall be called GraphPatterns, where query and mutation are possible.