Add a Nano installer for Windows

1. Downloads and installs Nano into the users home directory
2. Adds Nano to the path
3. Makes Nano the default editor
Switch from using .bashrc to .bash_profile nano path and editor export
Append exports to end of .bash_profile instead of overwriting

In the process at an explanation of where the lines came from
so that users know they can remove the lines if desired.
Remove testing line
Merge branch 'nano-installer' into windows-installer

* nano-installer:
  Remove testing line
  Append exports to end of .bash_profile instead of overwriting
  Switch from using .bashrc to .bash_profile nano path and editor export
  Add a Nano installer for Windows
swc-windows-installer.py: Bring in Ethan's make_bash_profile and make_posix_path

This integerates some of Ethan's nano-installer changes.  In the pull
request, Ethan elaborates on the .bash_profile choice [1]:

  In response to comments on the Tutors list the installer now uses
  .bash_profile instead of .bashrc and appends the lines rather than
  overwriting the file. I have also added comments that indicate where
  the new lines in .bash_profile come from.

  Once the Python version is in I'll move on to getting this compiled
  into a .exe file, which should be more familiar to our students and
  won't run into issues with Canopy installs opening the file in
  Canopy rather than executing it.

The referenced tutors@ discussion is in the messages leading up to
[2], where Ethan top-quotes a discussion with R. David Murray about
the relative merits of .bash_profile and .bashrc.  The imporant point
David made was that .bash_profile is only executed once at login,
while .bashrc is executed for each new shell.  Putting PATH appends in
.bash_profile means that you don't end up adding duplicate entries to
the PATH as you spawn subshells.  For example:

  ${ORIGINAL_PATH}:${NANO_PATH}:${NANO_PATH}:...

[1]: https://github.com/swcarpentry/bc/pull/35
[2]: http://lists.software-carpentry.org/pipermail/tutors_lists.software-carpentry.org/2013-September/000969.html
swc-windows-installer.py: Generalize update_bash_profile

And rename from make_bash_profile now that we're appending instead of
creating (since c5d5414, Append exports to end of .bash_profile
instead of overwriting, 2013-09-19).

This more general form can be used to add even more paths, for example
our IPython and nosetest entry points.
swc-windows-installer.py: Rework paths in main()

Based on Ethan's path handling in 833d0ee (Add a Nano installer for
Windows, 2013-09-17), while still retaining the entry-point creation
for IPython and nose.
swc-windows-installer.py: De-emphasize Anaconda

Bridge the gap between the original Anaconda plug and Ethan's simpler
"Install Python" from 833d0ee (Add a Nano installer for Windows,
2013-09-17).  As of Anaconda 1.7.0, IPython 1.0.0 and nose 1.3.0 are
included by default [1].

[1]: http://docs.continuum.io/anaconda/pkgs.html
swc-windows-installer.py: Remove IPython and nose entry points

Ethan thought these had been fixed upstream, and Aron Ahmadia pointed
to the Anaconda v1.6.2 release notes [1]:

  2013-07-09: 1.6.2: (Windows only)

    Fixed path being incorrectly appended on Windows during install

That means we can drop our entry point scripts and fall back to just
installing Nano and setting up EDITOR.

[1]: http://docs.continuum.io/anaconda/changelog.html
swc-windows-installer.py: Rework install paths to use ~/.swc

Instead of cluttering the user's home directory with multiple
SWC-installed directories, reduce clutter and improve namespacing by
dumping everything inside ~/.swc.  Think of it as a SWC-specific
~/.local.  We avoid actually using ~/.local because users might
already be using that for other purposes.

Use os.makedirs to create the nano install directory if it does not
already exist, because ZipFile.extract uses os.mkdir internally, and
mkdir will not recursively create directories.
swc-nano-installer.py: Remove now that changes are in swc-windows-installer.py
Merge branch 'windows-installer' into bc-setup

Remove the historyless setup/bin/swc-windows-installer.py which was
added in 01d6419 (Import installation test scripts from boot-camps
repo, 2013-09-03), and replacing it with
setup/swc-windows-installer.py and it's original history from the
boot-camps repository.

Also remove Ethan's newer setup/bin/swc-nano-installer.py. I've
cherry-picked his commits into an orphan branch in my
windows-installer history, and incorperated his improvements into the
swc-windows-installer.py script.  This means that the
swc-nano-installer.py commits appear twice in this history, once as
thier bc-repo originals, and again in my cherry-picks.  Not the most
elegant solution, but it means that future merges from my
windows-installer branch won't run into any rebased-history problems.

* windows-installer:
  swc-nano-installer.py: Remove now that changes are in swc-windows-installer.py
  swc-windows-installer.py: Rework install paths to use ~/.swc
  swc-windows-installer.py: Remove IPython and nose entry points
  swc-windows-installer.py: De-emphasize Anaconda
  swc-windows-installer.py: Rework paths in main()
  swc-windows-installer.py: Generalize update_bash_profile
  swc-windows-installer.py: Bring in Ethan's make_bash_profile and make_posix_path
  Remove testing line
  Append exports to end of .bash_profile instead of overwriting
  Switch from using .bashrc to .bash_profile nano path and editor export
  Add a Nano installer for Windows
  swc-windows-installer.py: Use the stdlib's urlopen()
  swc-windows-installer.py: Use lists for file content
  swc-windows-installer.py: Use `with` to write script wrappers
  swc-windows-installer.py: Simplify `ipython` wrapper
  swc-windows-installer.py: Extract nano directly to the install directory
  swc-windows-installer.py: Avoid writing nano.zip to disk
  swc-windows-installer.py: Separate requests import from stdlib imports
  swc-windows-installer.py: Cleanup whitespace
  swc-windows-installer.py: Setup msysgit to act like *nix systems
Merge branch 'installation-test' into bc-setup

Remove the historyless setup/bin/swc-installation-test-*.py which were
added in 01d6419 (Import installation test scripts from boot-camps
repo, 2013-09-03), and replacing them with the original history from
the boot-camps repository.

This drops the ellipsis -> triple-period changes introduced by 64f4940
(removed stray non-printing unicode characters, 2013-10-11).  In his
comment for swcarpentry/bc#64, Will Trimble says [1]:

> It looks like most of these were present in the old boot-camps
> repository. Because of their positions, I presume these were
> unintended side effects of a format conversion or a cut-and-paste
> gone bad. The unicode characters that are intentional--in strings
> and in names--I have not disturbed. But these are symbols that do
> not seem to be purposeful.

My ellipses were purposeful.  I'd be happy to add `-*- coding: utf-8
-*-` magic comment to the file, but Markdown doesn't have a comment
character...

[1]: https://github.com/swcarpentry/bc/pull/64#issuecomment-26168019

* installation-test: (69 commits)
  swc-installation-test-2.py: added support for py.test
  swc-installation-test-2.py: Use ProgramFiles environment variable
  swc-installation-test-2.py: Also look for extension-less paths
  swc-installation-test-2.py: Add CommandDependency.paths fallbacks
  swc-installation-test-2.py: Use _ROOT_PATH for MS Windows compatability
  swc-installation-test-2.py: Raise an error on empty version stream
  swc-installation-test-2.py: Don't override Popen's 'close_fds'
  swc-installation-test-2.py: Add 'safari'
  swc-installation-test-2.py: Link directly to install docs
  swc-installation-test-2.py: Add --help and --verbose
  swc-installation-test-2.py: List supported Ubuntu install hints
  swc-installation-test-2.py: Add support for package-specific URLs
  swc-installation-test-1.py: Link to s-c.o's terminal.html
  swc-installation-test-2.py: Add 'argparse'
  swc-installation-test-2.py: Add 'EasyMercurial'
  swc-installation-test-2.py: Initial EditorTaskDependency implementation
  swc-installation-test-2.py: Add PathCommandDependency
  swc-installation-test-2.py: Add TornadoPythonPackage for version extraction
  swc-installation-test-2.py: Add long names for virtual-* packages
  swc-installation-test-2.py: List all causes for or-dependency errors
  ...