Added ProgressBarGUI class, and modified saveAs().

ProgressBar now shows properly for all files within the main sketch
folder, but not within sub-folders.

To Do:
1. Make ProgressBar take into account files that have already been copied
within sub-folders in the sketch, and not onlyafter the entire folder has
been copied.
2. Rename "Saving X As Y..." with "Saving <original_project> As
<new_project>"
3. The progress made for very large files is shown only after the ENTIRE
file has been copied. Modify processing.app.Base as well so that for large
files, the ProgressBar is updated in (almost) real time
4. Make "Done Saving" appear in Message Area only after the entire Save As
operation is complete
Ensure RGB pixels are fully opaque
Improved significantly on ProgressBar

Improvements 1,2 and 4 as mentioned in the last commit have been
implemented, i.e., ProgressBar now takes into account files within
sub-folders, the Label now reads properly in the "Save As progress" dialog
box, and "Done Saving" message appears in the message area only after the
entire process is completed.

To do:
1. Ensure progress bar reflects large files accurately
2. Add comments, minor clean-up
fixes #2341 - inconsistent bounds checks

The core datastructure IntLost, FloatList, and StringList all have
unsafe .get methods that do not perform bounds checking. This is in
contrast to their .remove methods, which do perform bounds checking.
Prior to this patch, the following would print 0:

    IntList il = new IntList();
    println(il.get(5));

But if we tried to *remove* that element, we would get an
ArrayIndexOutOfBoundException:

    il.remove(5);

This patch causes calls to .get to throw exceptions instead of returning
0 (or null in the case of StringList) for uninitialized values.
Save As Progress Bar complete, resolving issue #70

Now works for large files within folders as well.
Code is now commented as well.
Progress Bar now displays when Adding Files
Shifted ProgresSBarGUI inner class to new class

Sketch.ProgressBarGUI is now ProgressFrame
Also performed some minor formatting
All ProgressBar code shifted to ProgressFrame clss

Base is now exactly like the original.
Only change in Sketch is that a new event dispatch thread has been created
during Save As or Add File.

Base back to original
PdeKeyListener.java: tab key behaves correctly if !editor.tabs.expand

If the `editor.tabs.expand` preference setting is set to `false` (tabs 
are *not* expanded to spaces), insert a tab character when the tab key 
is pressed. Previously nothing would be inserted.
Fixes #2656
Implemented elliptical arcs for PShapeSVG

Feature request #169
dialog for new tab and rename. Fixes #2431
Merge pull request #2607 from teddywing/insert-tab-char-on-tab-keypress-if-not-editor.tabs.expand

PdeKeyListener.java: tab key behaves correctly if !editor.tabs.expand
Merge pull request #2659 from JakubValtar/svg-arc

Implemented elliptical arcs for PShapeSVG
todos and notes for the revisions
Merge pull request #2657 from joelmoniz/fixReferenceNotShowing

Help>References and Help>Environment open in default browser in Windows
Correcting descriptions of reverse method for FloatList, IntList and StringList.
Fixes https://github.com/processing/processing-docs/issues/50
added sketchbook - tree view
removed unnecessary imports
added sketchbook shortcut