HTTP ETAG SUPPORT ADDED

See POD for details.

Also did some refactoring. prepare_asset() is now called earlier in the
request process, before 'asset_request'. So, it is no longer the
responsibility (by default) of consuming Handler classes to call
prepare_asset().