set @props, improve CypherSession.load_node efficiency

First commit:
`@props` gets set during initialize if a hash of values is passed. If it isn't set at that time, it never gets set and future calls to `props` result in queries. This sets @props as soon as it finds it is nil.

Second:
CypherSession.load_node gets a node from the database but was only sending CypherNode.new the neo_id, even when a valid node was found. This could cause a duplicate query if `props` was called afterwards, as it is in the `_classname` patch I'm putting in shortly. This fixes that by checking for a valid response and sending that (which includes the neo_id) if it is found instead of sending only the neo_id and disregarding everything else received.