First inklings of schema.org support for library pages

Adds a TPAC page where the information for a given library can be publicly
exposed; in addition, that information is marked up with schema.org structured
data so that, for example, a search engine can offer up the hours of operation
and contact information for a given branch right on the search results page.

We give the content-wrapper a main-content for indentation, to be consistent
with other pages in the TPAC.

We also add the cargo-cult common-full-pad div for a bottom margin.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Link from copies to library info page

In the absence of a specific lib.info_url org unit setting, link to the library
info page.

If we _do_ have a lib.info_url org unit setting, link from the library info
page to to the external web site.

Rather than wrapping everything in the table cell as the seller, focus
on the <a> and give it an explicit Library typeof attribute; then we can
offer up the name of the library as the name attribute, should the
crawler be too lazy to follow the link.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
TPAC Library schema info - add some caching

Rather than hitting the database every time, cache our requests for a
period of time. It's unlikely that hours of operation or addresses are
going to change very often...

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Use the 'format.time' OUS to format library hours

Sparked by a concern that Ben Shum had over the display of library hours in 24
hour format, I eventually figured out that we could use the Template::Toolkit
Date module to format the times according to library preferences. And given
that we already have a format.time OUS, let's use it.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
%l instead of %H if we're using AM/PM for default time formats

Thanks again to the indefatiguable Ben Shum for this catch!

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Improve label for library's external web site

Normal humans will find "Library web site" more meaningful than "External web
site"; thanks to Kathy Lussier for the suggestion!

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Copy details link to Evergreen library page by default

Add a new library setting, 'lib.prefer_external_url', to force library names in
copy details pages to link to their associated 'lib.info_url' setting rather
than the Evergreen-generated page. In the absence of a 'lib.info_url' setting,
the name will fall back to being linked to the Evergreen-generated page.

Per discussion with Ben Shum and Kathy Lussier.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Add upgrade script for lib.prefer_external_url OUS

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Release notes for the TPAC library web pages

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Stamping 0853: 'Prefer external URL' OUS

Signed-off-by: Dan Wells <dbw2@calvin.edu>