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.