Enhancement: Introduce simple end-to-end jasmine test

Note, this deliberately uses basic assertions, we'll replace them next

What we learned:

* How to pull in external files (Jasmine-related)
* Include Jasmine and its web-based runner and reporter
* Jasmine spec syntax and principles
* Assertion basics
* jQuery basics
Refactor: replace Error assertions with jasmine ones
Refactor: Introduce jQuery into the game
Refactor: introduce jQuery into the spec
Refactor: tidy js files away
Enhancement: Ignore node modules
Refactor: move app-related code into public/
Refactor: Rename javascript files for clarity
Refactor: Introduce MVC pattern

At this point, we have separated out the behaviour into the three
MVC responsibilities. We've introduced the concept of functions,
and the battleship.js file can be loaded from any page.
Add model spec (shootAt())

We've renamed the file acceptance-tests.js to tests.js to reflect
the fact that it contains both high level tests for the overall behaviour
of the app, and lower level unit tests.
Enhancement: Hitting and missing ships

Here we add the acceptance test for the new behaviour.

Notice we're changing the wording in the test to use more domain
specific language, talking about shooting, hitting and missing
instead of clicking. This reflects our growing understanding of the domain.
Enhancement: Hitting and missing ships

Adding a unit test for missing a ship. This spec could be refactored,
but we'll tolerate the duplication for now.
Enhancement: Hitting and missing ships

Adding the implementation to make the tests pass.
Enhancement: Make application Node.js/NPM-aware

We've added a NPM manifest file to declare our application properties.
This - among other things - will allow us to define package
dependencies for both the testing code and the application itself.

Most popular browser-based JavaScript libraries have their counterpart
in NPM (e.g. jasmine, jquery, etc.).
Enhancement: Open test page from the command line

We've introduced a little Node.js script that automates the task of
opening a (default) web browser and loading the test page of our
application.

What we learned:

* How to require and use Node modules
* Spawn child processes with Node
Enhancement: Serve application and tests through HTTP

We added a simple Node.js-based HTTP server to expose the application
and its tests more easily. This is the first step towards having our
tests being run on the CLI.

What we learned:

* How to install Node modules through NPM
* How to write a simple web server in Node
* Events (emitter)
* Callbacks which are everywhere in Node.js