Massive refactoring and reogranization

I have removed the elpa directory from being tracked, as there
is no need for that. I will most likely re-initialize the git repo
(again) as I don't need all that history so this commit will be short
lived.
Add elpa/ to .gitignore and add new files
[minor] Refactoring
Update .gitignore