Implement Node#intern using cache, so that Node("b").eql(Node("b")).
This also allows Statement(:s, p, :o) to eql? Statement(:s, p, :o), where previously the nodes would not be the same.
This addresses issue #152