adding symlink handling to the template loader and watcher processes
had to turn the watcher/template filepath.Walk functions into local, named functions to permit for recursion on symlinks. This was done as a work around for filepath.Walk not traversing symlinks. In template, we have to save/restore the state of the basePath when calling recursively on symlinkd directories
Add AppRoot to allow changing the root path of an application
Simplify code
Added HttpMethodOverride to routes
Check if _method empty, added POST to allowed verbs
Removed unused validation
Check if is post request for security
Defer storing the session until it has a value set
Make the option template tag type agnostic.

This commit contains two enhancements.
First: Set the element to selected if the flash is empty, and the current field value equals the value passed in.

Second: The type of the val passed in is now a generic interface{} so that integar values passed in match the value of the field.
Without this change, integer fields passed into val are turned into strings, and will not match the integer value reported by f.Value()
Condense logic slightly
Fix build errors, and test for filter
Expose redis cache options to config.
Fix #343
Removed log statement that causes a lot of unncessary output
Use a mocked default config for the redis tests
Remove superseded test config file
Add NewMergedConfig to create a default empty config object
Rename to NewEmptyConfig to more accurately describe behaviour
Properly close the WriteFlusher instance

Based on @klauspost's suggestion
Merge pull request #596 from revel/klauspost/redis-cache-options

Expose redis cache options to config