move KeyMap_Invoke into the autoload file

This will keep the class file cleaner, and may also fix #223
fix the <enter> mapping

It now acts the same as the ActivateNode mapping ('o' by default) again.
This was broken in the big refactor.

Fixes #222
some cosmetic updates to the class files

* fix the fold markers (they were unnecessarily deep)
* always have one line under each method
* update some of the fold comments -> always use FUNCTION in all caps
* add a modeline to each class file
fix a couple of function calls that should have been renamed

Call nerdtree#echo, not s:echo. This was changed in the big refactor.

Fixes #224.
extract the tree creation functions out into their own class

Add the NERDTreeCreator class.

Stick all functions related to creating a primary/secondary/mirror
nerdtree in there. We may break this down further in the future, but
this is a good starting point.

Make some of the interface binding functions in autoload/nerdtree
public. This is needed since we are accessing some of them from
NERDTreeCreator. Should be temporary until we get some kind of proper
interface binding system set up.
fixed error messages on copy node in NERDTree buffer
Merge pull request #227 from kasyaar/copy_node_fix

fixed error messages on copy node in NERDTree buffer
add some class methods to wrap the NERDTreeCreator public methods

This is needed because some versions of vim dont let you chain method
calls together. So do the work in NERDTreeCreator instead of forcing all
callers to break the New().createXXX() calls out onto 2 lines with an
intermediate variable.

Fixes #226.
move a couple of functions into NERDTreeCreator

The "next buffer name" functions are only used in NERDTreeCreator so put
them there.
catch an error thrown when refreshing a dir with a FIFO or socket
fix NERDTreeCWD

Closes #233
fix a bug where the user couldnt override the mapping for <cr>
move the class files out of the plugin dir

On some new versions of vim these files were being loaded before the
main NERD_tree.vim which was causing errors as dependencies werent
loaded in time. Move the classes into lib - so vim wont try to load them
until we tell it
don't redefine user-defined mappings

As a user it's a little jarring when a plugin maps over something I've
already defined.  This patch fixes that problem, by using `<unique>` to
ensure unique mappings.

For more info see `:help <unique>`

Note: This has no effect if the mapping isn't already defined (that is,
NERDTree is defining a unique mapping), so this won't break for normal
users of the plugin.

Note: `:silent!` is needed to ignore the error that occurs when a
mapping is already defined.

Fixes #252
Merge pull request #255 from joshuarh/unique-mappings

don't redefine user-defined mappings
Revert "don't redefine user-defined mappings"

This reverts commit 2fa35fb4949f670f1c137dc26a779f6e0515b330.
fix spelling in documentation
Merge pull request #263 from medvid/master

Fix spelling errors in documetation