Node edit command

This is a PR for a new command which enables nodes to be edited as a whole, and replaces the `node:property:edit` command (the `node:property:set` command still exists however).

Example:

````
PHPCRSH> node:edit cms/products/product1
````

Will open an editor with the following:

````yaml
cost:
    type: Double
    value: 12.13
weight:
    type: Long
    value: 10
size:
    type: String
    value: XL
name:
    type: String
    value: 'Product One'
'jcr:primaryType':
    type: Name
    value: 'nt:unstructured'
tags:
    type: String
    value: [one, two, three]
````

It also supports a short syntax when creating nodes:

````
'jcr:primaryType':
    type: Name
    value: 'nt:unstructured'
foobar: barfoo
barfoo: foobar
````

You can then edit, remove or add properties as required.
well this is not necessarily about node-types, this could be a property on an nt:unstructured node. But there doesn't seem to be a `setType` method on the `PropertyInterface`.

Also.. I noticed that when saving "10" as a "Double" to jackrabbit, that it comes back as a "Long". Is that jackalope ignoring the specified type, or jackrabbit?