Vim modelines, better ZSH support, better shell detection

To start off with... I love the project. I was thinking about trying to retrofit autoenv to do what this does already so I was happy I found this. I tried to leave these kind of separate so you could pick what you wanted.

commit #1) Just added vim modelines to several files. I don't know if you use vim or not but I added to make edits with you 4 space indents and thought I'd commit in case you wanted to keep. Shouldn't hurt anything if you use a different editor.

commit #2) Simply edited some Docs to directing users to source arrays before "smartcd config". I'd guess that a better fix would be to just source arrays within core/smartcd since the initialization sources it as well. However, since I don't know all the code and you didn't do it that way I put it in the docs. I think it's only needed by ZSH. "smartcd config" didn't work without it for me.

commit #3) I made it pretty clear in the commit but it just detects the running shell a little better and looks in more places for ZSH startup files.