Added better Profile support for optional fields which have
value constraints. Fixes #30.
* If an optional field is has value constraints and is an
  attribute, it gets its own schematron rule context.
* Fixed an issue where rule contexts were not being fired because
  a superset context was fired instead. This was accomplished by
  wrapping each schematron rule inside its own pattern. TBH, i'm
  not sure why this seems to work.