Implements multiple selections clipboard paste

Includes:

  - Passing the selection index in the `Editor::mutateSelectedText`
method callback
  - Storing all the selections content on many calls of
`Selection::copy` with `maintainClipboard = true` in a metadata
`selections` array
  - Handling clipboard with a `selections` metadata in
the`Editor::pasteText` method
:lipstick: Fix typo in pasteText method comments
Allow newer version of `nodejs`
Adds specs for multi selections clipboard handling
:lipstick: Replace have with has in spec description
:lipstick: Harmonize lineForRow calls in specs
:lipstick: Use skinny arrow instead
:sweat_smile: Forgot to remove the test focus
:lipstick: Clear object deconstruction in Selection::copy
Replacing string comparison with actual int comparison
Allowing node > 1.0 (no reason not to already do that, I guess)
:confused: Forgot to replace most references to clipboardMetadata

Never attempt to fix a PR right before going to sleep!
Remove duplicate . from default nonWordCharacters
Fix #2152: Cast opened paths to string

path.resolve() was throwing an exception if given path was not a string.
When iterating through all given paths, each entry is casted by JS to
most suitable type and paths in form of a number (i.e. '1234') were
cast to Number, hence the bug.
Map key for full screen on windows
:lipstick: Remove unnecessary double conditions
Change test to cover all Selection::copy branches
:penguin: Add commands for ctrl-home and ctrl-end.
Add ctrl-home and ctrl-end Win32 bindings
Fix #2152: Cast opened paths to string

path.resolve() was throwing an exception if given path was not a string.
When iterating through all given paths, each entry is casted by JS to
most suitable type and paths in form of a number (i.e. '1234') were
cast to Number, hence the bug.