Fetch templates with $http, run init() after

getTemplate() now return a promise. It is immediately resolved if the
template is local. If it is remote, the promise is resolved after the
template is fetched and put into the cache.  Also the $http request is
cached in $templateCache as well, so the same template should only be
fetched once no matter now many grids use it.

New function self.initTemplates(), calls getTemplate() for each of the template
types. Returns a promise via $q.all() that bundles all the getTemplate()
promises.

self.init() now returns a promise and defers execution until after
initTemplates() completes.
Wait for grid.init() to complete, then continue

grid.init() is now called here, not in src/classes/grid.js. It returns a
promise which delays the execution until everything is ready (templates,
and whatever else init() does).
Adding express webserver for testing templates

A bug with external templating occurs when the template comes back AFTER
the data is ready to be drawn in the grid.  This script uses express to
delay serving the grid template for a couple hundred milliseconds.
Adding express to devDependencies
Adding files for testing external templates

There is a bug with external templating where if the template comes back
AFTER asynchronously loaded data is ready, an "$apply/$digest is already
executing" error will occur. This test will demonstrate that in tag 2.0.4
if you access it via scripts/server.js
Removing commented out old code