Revert "Merge branch 'tree-router'"

This reverts commit 65d5a0577a8adf4ecd4603ee26ddce9253709a52, reversing
changes made to 1fd73839c9c13b944485d239c571bdcbeb0409ba.

Conflicts:
	router.go
Chdir into app directory when running or testing for relative path goodness
Use filepath.Join instead of path.Join

Fixes #79
Make package command default to prod run mode

Also make the run mode used by package configurable from the command
line. Fixes missing dependencies in the resulting binary if db.import is
specified in a run mode-specific part of app.conf instead of in the top
general configuration area.
glog
Fix fakeapp
Content negotiation - Vary Render behavior depending on the "Accept" header.

In particular:
- c.Request.Format is set to one of ("html", "xml", "txt", "json") based on Accept header.
- Use text/template to render json/txt templates, and html/template for html/xml
- Render looks for templates with extension matching the Format
-- e.g. Controller/Action.{html,json,xml,txt}
- For formats (xml, json), If no template exists, serialize the first argument instead.
- Return 404 if template can not be found

Fixes #130
Add default templating engine
Move websocket from Request to Controller
Prefer json to txt
errorClass: Further protect against nil errorMap.  Fixes #285
Allow binding a file upload to multipart.FileHeader
Revise the SSL support implementation details

- Remove the complexity around the NoSSL parameter -- the harness can proxy SSL without a problem
- Change naming convention to Ssl from SSL.  e.g. HttpSSLKey is inconsistent with itself.
- Skip adding no-op SSL parameters to sample apps (minus booking)

Conflicts:
	harness/app.go
	harness/harness.go
	revel.go
	server.go
RenderError: Log 500 errors
Properly return 404 when a template is not found
{{field}} - validate arguments
Use package import path if one is not found for method args