MATCH with properties

This PR adds properties to the MATCH clause, e.g.

    MATCH (n:Person {name:"Joe"})

This is equivalent to writing:

    MATCH (n)
    WHERE n:Person AND n.name = "Joe"

(This is done on top of #1383 - merge that first)