Added a frequently asked question to README
Merge pull request #219 from felipebueno/master

A question asked by many VIM / NERDTree newcomers
decompose the giant NERD_tree.vim file

* Move the classes out into `plugin/nerdtree/<classname>`.
* Move the other functions out into `autoload/nerdtree.vim`.

Stuff still to do:

* extract out at least one view class from `autoload/nerdtree` -
  something like NERDTreeWindow
* figure out which functions in autoload/nerdtree should be scoped to
  the script instead of public
replace a script level var with a query
manually apply #220 to fix NERDTreeFind for hidden dirs
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