Vokab::Item::* use attributes for entry fields

- entry fields are initialized lazily; only need to be read into
  read_all()
- values of entry fields read from public attributes when appropriate
- basic type-checking of public attributes
Added unit tests for attributes of Vokab::Item::*

- renamed attribute builders to _build_*
- added Vokab::Types for custom Moose types; attributes use more
  detailed type constraints
Properly added unit tests for Vokab::Item::*

- added tests for all Moose subtypes in Vokab::Types
- fully qualified parentheses around attributes' `has()` and types'
  `subtype()` (a common source of long bugs for me)