Add schema.org structured data for bibs and holdings

Add basic RDFa Lite markup for bibliographic attributes to the default
record template.

Following the emergined recommendations of the W3C Schema Bib Extend
community group around individual item holdings, mark up each available
item as an instance of http://schema.org/Offer to be as compatible as
possible with how online vendors mark up their offerings. Due to the
commercial orientation of Offer, the mappings may look a little odd, but
they are in the spirit of the defined attributes.

* library = Offer/seller
* callnumber = Offer/sku
* barcode = Offer/serialNumber
* status = Offer/itemAvailability

Signed-off-by: Dan Scott <dan@coffeecode.net>
Add finer grained schema.org type mappings

Inspired by Eoghan Carragáin's patch at
http://vufind.org/jira/secure/attachment/10297/schemaOrg.patch to
provide a mapping for schema.org types, take a similar approach - but
take advantage of RDFa Lite's support for the the typeof property to
contain multiple types, in case we run into a record with both a Book
and MusicRecording, for example.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Schema.org: improve element nesting

After conversation with the RDFa community, it turns out that an <a
href> begins a new "chain" that complicates the association of
properties to the correct objects. Instead, wrap that <a href> with an
element denoting the property to keep the relationships straight.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Basic RDFa schema.org markup for bootstrap theme

Includes holdings, title, author, subjects as keywords, and book edition
- paralleling what we have for the blueprint theme. There is room to
make this more comprehensive but it is a start.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Minor validation fixes.
Simplified code and made it slightly more flexible for subclassing.
Represent publication details as an object instead of a string.
- Resolves VUFIND-911
- Includes unit tests