Added basic vagrant file with more dependencies required for building.

* Using vagrant greatly reduces the barrier to contribution as it allows
folks with different operating systems to get up and running quickly.
* Creates a known development environment which can be centrally
maintained.
* Reduce the getting started documentation.
Only link pre-push hook if it does not already exist.

* This is required to allow install-dev-dependencies.sh idempotent
(able to be run multiple times).
Add tftp to install-dev-dependencies.

* tftp is required in dev for flashing the wndr3800
Build image w/ image builder.

* Aim of this commit is to reduce build time in development. With this
building firmware from clean is about 8min in virtual machine, rather
than about 3hrs.
* Downloads and caches ImageBuilder from cerowrt/bufferbloat repository.
* Larger than a regular release.
* Currently has vanilla python rather than python-mini-eff. Building
python-mini-eff as a binary and hosting would resolve this issue.
* Caches all downloaded packages in .cache
Add libfontconfig to install-development-dependencies (required for phantomjs)
Link legacy node binary to new binary.
Add firefox/xvfb for running functional tests in virtual machine.

* Also had to upgrade selenium version to support newer version of
firefox.
* Xvfb is a virtual framebuffer which allows running GUI applications
without a real X windows environment.
Refactor pre-push script to use wrapper 'pre-commit'

* pre-commit should aim to do everything to validate
developer changes, this may extend beyond just 'run-tests.sh'
which runs unit tests.
* pre-commit is vagrant aware, so will run the command on
the vagrant box if vagrant is detected.
* if already on the vagrant box, will run tests locally.
Fix DISPLAY setting in Xvfb init script.
Add options to install-dev-dependencies.sh for whether to prompt and/or
install Xvfb.
Switch xvfb to use upstart...starts on reboot!
Allow running the openwireless frontend w/ fake uci on vagrant box.

OpenWireless requires the ability to modify permissions of files
on disk. The vagrant mount '/vagrant' does not allow permissions to
be modified, so this change mounts the running application in the
temp filesystem.
Updated README.md to include Vagrant documentation.
Merge pull request #254 from akiellor/simplify-getting-started

Vagrant support, optional build firmware w/ image builder, update dev dependencies.
Merge  'upstream/master' into coding_style