Optimize property declaration
Optimize property declaration

Previously, the call to `property` was invoking ActiveModel's
`respond_to?` method, which is actually quite expensive - it depends on
ActiveModel::AttributeMethods#matched_attribute_method, which was
painfully slow on giant nodes. I have a feeling it was running in
quadratic time but I have not verified that.

With this commit, loading the definition for an enormous node with 247
properties (don't ask) went from 1450ms down to 145ms. On a slower
machine, loading those properties took over 7 seconds before this commit
and only 169ms after.

neo4jrb/neo4j,cheerfulstoic/neo4j,leviwilson/neo4j,cheerfulstoic/neo4j,leviwilson/neo4j,neo4jrb/neo4j