Renamed .lineno and .inputline classes.

Renamed all class="lineno" elements to class="num".
Renamed all class="inputlne" elements to class="line".
Collapsed various header and footer files.

Created a single header.php file and a single footer.php file. Moved content
from files such as knowvim-navigation.php directly into header.php.  The
file is larger but I think it's now simpler to understand what is being
included where. Eventually I need to change this naive approach to
the server-side rendering of pages, but it works for now and the site is
simple enough that I can still maintain this system as-is.
Added crude front controller.

index.php is a home-brewed front controller that just inserts a header and
footer around the main VimWindow "buffer" contents. This is crude, but at
least a bit better than having to put require("header.php") and
require("footer.php") statements at the top and bottom of every new page in
the site.
Undid the front controller stuff.

Maybe adding require("header.php") and require("footer.php") isn't so bad
after all. I realized the Rewrite rules are a little bit tricky since if you
ask for a resource like /explain.php and that resource actually exists as a
file, then it will serve that up rather than applying the Rewrite rule
first. I'm sure there is a way to stop this but I'm just going to go back
to the old way for now.
Added forgotten require statements to knowvim.php.
Renamed lessons/ to files/

Updated js/knowvim.js accordingly.
Added VimWindow stub.

Just testing stuff, but made a global VimWindow function for holding all of
the state.
Added Backbone, Underscore, JSON2 libraries.

Also updated the jQuery library to 1.8.0.
Created Buffer model and EditorView view.

The Buffer model is wired to fetch text files from /files/ on the server and
split the list of lines into an array. The EditorView has a render()
function which iterates through each line in this array (via
view.buffer.get('lines')) and wraps the contents in appropriate HTML markup
tags. The resulting markup is inserted into the EditorView's el element.
Renamed VimWindow to Vim.

Also tweaked some model relationships. EditorView should now listen to
changes in the Vim model, which in turn alters a Buffer model.
Fixed syntax errors, dependency bug.
Still trying to get render() callback to work.

Things don't work.
Added change event listeners to Buffer and Editor.
Merge branch 'refactor' of https://github.com/ahw/knowvim into refactor

Conflicts:
	js/Editor.js
	js/Vim.js
Got some version of Vim.openBuffer working.

Vim.openBuffer now silently sets the Vim model's Buffer attribute and then
calls fetch(), manually a triggering a Vim.change() event in the "success"
callback of that fetch.  This seems to work; the EditorView responds
correctly to the change.
Removed console.log() statements.
Added ApplicationView.

The ApplicationView view is attached to the 'body' element so it can listen
globally to keyup, keydown, and keypress events. Eventually, it will send
information about these events to the EditorView view.
Reorganized js/ directory structure.

Moved jQuery, Backbone, Underscore, etc. into /js/lib. Moved view scripts
into views/ and model scripts into models/. Updated header HTML accordingly.
Stubbed out event handling.

Application view listens for keydown and keypress events and delegates them
to Editor's keyHandler function, which in turn delegates to Vim's keyHandler
function.
More event handling, some view updates.

Fixed some bugs in EditorView. render() no longer exists as a global
function; rather there is renderBuffer() and renderStatusBar(). This
prevents render() from overwriting status bar-related markup. Added basic
functionalitiy to switch between NORMAL, INSERT, SEARCH, and EXECUTE modes.
NORMAL mode handler delegates to action_handler() and motion_handler().
Haven't deeply thought about how these will work.