Core::Fetcher - allow for possibly random position of 'max-age' value

This patch addresses the issue of the 'max-age=\d+' pattern in the
Cache-Control header possibly being in a different position than the 1st
position. In other words, our current implementation only works for:

    public, max-age=XYZ

But now, the entire Cache-Control header value is split apart by commas,
stripped of leading and trailing whitespace, then inspected for presence
of 'public' and 'max-age=' values. If so, then we use the value of
max-age for caching.

Signed-off-by: Pang Yan Han <pangyanhan@gmail.com>