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
Merge branch 'master' of https://github.com/scrooloose/nerdtree