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
Merge pull request #588 from revel/develop_option_enhancement

Make the option template tag type agnostic