Fix Full Page Caching to Include Headers

Fix full page caching to include headers in `PageCacheRecord`

- Add method `PageCacheLibrary::getCacheHeaders(Page $c)`
- Refactor/DRY `PageCacheLibrary::outputCacheHeaders(Page $c)` to use
  `PageCacheLibrary::getCacheHeaders(Page $c)`
- Add method `PageCacheRecord::getCacheRecordHeaders()`
- Add method `PageCacheRecord::setCacheRecordHeaders($headers)`
- Set cache header record in `PageCacheLibrary::__construct()`

Design goal is to avoid changing the interface as I'm alread aware of
one page cache(for Redis) in the wild.

Slightly inefficient as it calls `PageCacheLibrary::getCacheHeaders()`
twice when caching a page.