Merge branch 'master' into integration

* master:
  First cut at integrating working.
Merge branch 'master' into integration

* master:
  Fixed unit test.
  Remove any Windoze-specific build instructions.
  Marked unit testing as 'done'.
  Added license.
  Connected unit test to actual server.
  First unit test executing.
  Now using nodeunit as our unit testing framework.
  Now there's a unit testing task in the build script.
  Finished setting up continuous integration (for now).
Merge branch 'master' into integration

* master:
  Running all unit tests defined in /spec/server.
  Running 'unit' Jake Task with proper synchronization.
Merge branch 'master' into integration

* master:
  A simple HTTP server is up and running.
  Spike: doing a simple HTTP server in node.
Merge branch 'master' into integration

* master:
  Basic HTTP server up and running.
  Exclude "node_modules" directory from within IDEA.
  (minor) Give test a more descriptive/useful name.
Merge branch 'master' into integration

* master:
  Server invokes a callback on close.  Throws exception when closed while stopped.
Merge branch 'master' into integration

* master:
  Renamed server.close() to server.stop() to be consistent.
Merge branch 'master' into integration

* master:
  Build script verifies that installed version of node.js is supported.
Merge branch 'master' into integration

* master:
  Relative filesystem paths are now canonical. Callbacks to server are properly passed through.
  Build script ensures "build" directory exists.
  Moved all source code under the "src" directory.  "build" is now for build output.
  Now server is serving up static files.
  (spike) serving up a static file
  Elaborated some of the next User Stories
  Going with a far far simplier way to check the node.js version.
Merge branch 'master' into integration

* master:
  Tests/Specs now put their generated files in a separate directory under "build".
  Build script can create and purge the build directory.
Merge branch 'master' into integration

* master:
  Explaining that functions are defined in reverse.
  (typographical) reversed the order of methods/definitions
  (refactor) extract HTTP GET calls into utility method in tests.
  Killed scaffold test.
  Removed likely useless "dependency".
  (refactor) Server now exposes its root directory as a property; tests reference that property.
Merge branch 'master' into integration

* master:
  Now, server can be properly configured with a 404 page.
Merge branch 'master' into integration

* master:
  (refactor) extract serving files and calculating filenames.
Merge branch 'master' into integration

* master:
  Marked story as done.
  Removed hardcoded logic to serve a "default file".
Merge branch 'master' into integration

* master:
  Finished with smoke test.
  Removed unnecessary TODO.
  Including script to kill a weewikipaint server quickly.
  Server passes smoke without timeout.
  Server passes initial smoke.
  (refactor) removed duplicate HTTP GET.
Merge branch 'master' into integration

* master:
  (noop) Marking the Copy And Paste between test files.
  Smoke test verifies that the custom 404 page is served.
  Smoke test properly requests the home page.
  (noop) By explicitly explaining that we're using recursion, hoping to speed understanding.
  Removed unnecessary output from smoke test.
Merge branch 'master' into integration

* master:
  (minor) remove extraneous logging.
  Build file now runs package installer to ensure all dependencies are installed.
  (refactor) extract dependency on environment variables from utility method (SRP).
  Procfile parser now substitutes referenced OS environment variables.
  Included procfile to describe how to startup the server
Merge branch 'master' into integration

* master:
  Restoring Procfile.
  Restoring Procfile.
  Killing Procfile as it's not being recognized on the build box.
  Report errors during spawning (not working on the integration machine).
  Now there is a production smoke test, launched through jake.
  Remove unnecessary default root directory path.
  Temporarily removing default serving directory as Heroku is choking on this...
  Renaming "profile" to "Procfile", Heroku cares about case.
  Moved reference to Procfile within Smoke Test.
  Moving Procfile to a location Heroku is expecting.
  Now specifying node and npm versions.
Merge branch 'master' into integration

* master:
  Included global references.
  Now running client-side tests
  Including Karma (aka 'Testacular').
  Created first story for the next MMF.
Merge branch 'master' into integration

* master:
  Now Karma runs in-process so as to avoid OS differences in process handling.
  (refactor) pulled karma invokation into separate method.
  Now, we launch Karama from Jake.
  (minor) relocated Karma configuration in the right spot in our project.
  Client side tests now verify that all required/supported browsers were tested.
  (minor) removed 'CAP' -- these two are sufficiently different with no need to refactor, now.
  Split client-side and server-side linting.
  Client-side unit test failure now causes the build to fail.