Prepare for brush mode refactoring.

The cope base is becoming sufficiently complex, that moving brush related
code into a separate directory seems justified to me. The idea is to have
all functions related to the currently (and possibly other upcoming) brush
mode in a separate directory to ease maintenance.
Add a configuration option to keep track of the current brush mode.
Introduce a package.json file

Rationale: It's time that we get to adding some tests. I will start doing
this during the "brushmode" refactoring, as things are getting somewhat
complex. I followed the d3js setup for tests, and as such will use vows as
the testing framework of choice.

NOTE: I'm completely new to JavaScript unit testing / BDD. Therefore, I'm
      not sure if vows is the right choice for us. However, I don't have
      the time to extensively research the available options. So time will
      have to tell.
Add a first (failing) test.

This was somewhat painful to setup, but now all the required bits and
pieces are there to start expanding our test suite.
Step one for making our first test pass.

Add a brushModes function, which returns the available brushing modes.
Currently, it only returns  the 'None' mode, as the other modes must be
added by the respective modes themselves.
Use strictEqual in the test.
Add more tests that express the expected brush modes.
Initial code to register the 2D-strums brush mode.
Move the implementation of brushable into the brushModes directory.

This function is (part of) the implementation of the 1D brush). We move it
into a separate file in the brush modes directory for clarity and
alignment with the other brush code.
Fix a typo in the test.
Add a comment line to indicate the start of the 2D-strums implementation
Add initial code for a brushMode function.
Add first test for the brushMode function.
First check if there are any arguments set before anything else.
Move brushExtents into brushes/1D.js

brushExtents is a function that only makes sense when the 1D-axes mode is
active, so reorganize the code to reflect this.
We need canvas as a requirement.

d3.parcoords.js is actually drawing on a canvas. So we need to make sure
that our test backend provides the proper support for it.
Move the brushReset function into brushes/1D.js.

This particular implementation only works for the 1D brush. Additionally, I
wrapped the 1D-brush code in a anonyomous function wrapper to make sure
that this code stand on itself and does not interfere with other
functionality.

Some further cleaning is required to make 1D work properly again.
Now we have the canvas, this seems to work to get a d3.parcoords object.
Make sure that we don't have brush related methods when brushMode is None.

This means that we have to check for the mode on change before we can call
brushReset.
Add some first test for switching to the 1D-axes brushMode.