[#5749] ticket:486 UI for setting a default milestone
[#5749] ticket:486 Add css class to radio buttons and bind js to it
[#5749] ticket:504 Fix radio buttons selection
[#5749] ticket:504 Separate radio button groups from each other
[#5749] ticket:504 Inherit Radio from InputField

Shoudn't inherit from Checkbox, 'cause it causes exception in
prepare_context, when saving multiple milestone fields.
[#6942] Allow tools to supply their own icons for nav

This change causes the icons to be fetched via the tool's icon_url()
rather than via the theme css

Signed-off-by: Tim Van Steenburgh <tvansteenburgh@gmail.com>
[#6942] Dynamically generate tool icon css

Signed-off-by: Tim Van Steenburgh <tvansteenburgh@gmail.com>
[#6942] Remove icon images from css

Signed-off-by: Tim Van Steenburgh <tvansteenburgh@gmail.com>
[#6942] Make App.icon_url() smarter

New implementation is smart enough to figure out whether the app
icons are local (in the tool package) or global (part of the active
theme) and generate the proper url accordingly.

Signed-off-by: Tim Van Steenburgh <tvansteenburgh@gmail.com>
[#6942] Fix App.icon_url(), add ETag caching

- Icon resource lookup needed MRO search to work properly with
  "inherited" static resources. Moved that logic out into
  App.has_resource() so it could be used by the EW resource
  registration code in config/resource.py.

- Added ETag caching for the new tool_icon_css so we get some
  browser caching. Unfortunately we can only cache it for the life
  of the server process since we can't tell if new tools have
  been added since the last server start.

- While adding ETag caching I noticed that other app-served files
  (like user and project icons) were not being cached by the browser,
  so I added caching for them too.

Signed-off-by: Tim Van Steenburgh <tvansteenburgh@gmail.com>
[#6942] Add tests for File ETag caching

Signed-off-by: Tim Van Steenburgh <tvansteenburgh@gmail.com>
[#6942] Remove redundant etag_cache() call

Signed-off-by: Tim Van Steenburgh <tvansteenburgh@gmail.com>
[#6942] Fix tests and css caching

- Switch to using md5 for css etag caching, which will be consistent
  across procs and restarts.

- Fix filesystem tests to account for etag encoding.

Signed-off-by: Tim Van Steenburgh <tvansteenburgh@gmail.com>
[#6942] separate etag and last_modified params in serve_file