Delete node api

Opening pull request for this issue:
https://github.com/google/cayley/issues/123

Which also references this pull request:
https://github.com/google/cayley/pull/136

Not ready for merge, but would be good to have an easy way to get feedback on code. Before merging, I would like to complete some tests and write the http end point.

I would actually clean it up like this:

	func (s *Single) RemoveNode(v graph.Value) error {
		var delta []graph.Delta
		for _, d := range []graph.Direction{quad.Object, quad.Label, quad.Predicate, quad.Subject} {
			it := s.qs.QuadIterator(d, v)
			if !graph.Next(it) {
				continue
			}
			for i := 0; graph.Next(it); i += 1 {
				q := s.qs.Quad(it.Result())
				delta = append(delta, graph.Delta{
					ID:        s.AcquireNextID(),
					Quad:      q,
					Action:    graph.Delete,
					Timestamp: time.Now(),
				})
			}
			it.Close()
		}
		return s.qs.ApplyDeltas(delta)
	}

If your order of direction operation is not important (I didn't check - tests?), just replace the range iteration with `for d := graph.Subject; d <= graph.Label; d++ {`