Fix lxml FutureWarning by explicitly testing for `node is not None`.
Raise new exception LoopError when trying to add a loop to `tcf.Graph`.

The method `tcf.Graph.edge_for_tokens()` now checks for potential loops.
If adding an edge would result in a loop (and this is not explicitly
permitted using the `loops` argument), a `LoopError` is raised. Because
this method takes tokens and not node labels, it is difficult for the
user to check if two distinct tokens have the same label. The new exception
shifts the test to the graph API.