Merge 1.9 changes into Head
Removed the use of String.contains() to make it java 1.4 compliant.
Some minor code cleanup.
Modifications to accomodate Downloads.
Moved location of file from skin to common, since it is independant of a single skin. Modified most of the internal code to allow redirecting request to an appropriate destination.