Decouple UI and fileoperation logic.

1) Decouple fileoperation logic from UI.
2) Refactor code.
3) Add directory support.
4) Now supports dragging of directories.
implement rename file as fileoperations.

This removes the hack where to rename a file we created a new file,
copied the content and delete the old file.

Use moveTo of DOMFilesystem instead.
Move writing of pref file in file_node.
Save prefs in chrome.storage instead of a file.
Refactor code and break into modules.

1) Move tabs UI and functionality into tabs.js
2) Move Create project / file dialog functionality and UI to
model_dialogs.js
3) Move main window UI and controller to spark_window.js
Move tabs Hash map to tabs_manager

Move the global hash maps of tabs and tabs index to tabs_manager.
Refactor project listing to use fileEntryMap.
move currentBuffer to tabsManager.
Move opening/closing of tabs to tabs_manager.
More cleanup of fileTree.
Refactoring, fix broken export.

1) Move editor code to spark_window.
2) Move Other UI code (run/export button) to spark_window.
3) fix broken export.
rename pnt to parentNode in FileNode.
Rename node in FileNode to entry.
Added CSS style for folder expand
Implemented treeview.
Allow partial reloadData() in listview to reload the list from a given index to avoid UI jankiness.
Included treeview.js in JS files.
window size tweaks
Set root node.
Support of folder. Switched to TreeView for the left panel. FilesListViewController reflects that. Fixed window resizing.