(MODULES-442) Correct boolean properties behavior

The boolean properties had a few things incorrect with them.

- Any value passed was considered `true`. This was compounded further by
  the next issue.
- When the read property was false, it was set to 'nil'. This caused
  `<property> => false` to not work after the previous was fixed.

Random other fixes to tests that were failing or poorly implemented are
also included
Merge pull request #291 from hunner/isfragment_fix

(MODULES-442) Correct boolean properties behavior
Rewrite this to make it clear the roles and profiles pattern would be
the better idea.
Merge pull request #294 from apenney/rolesandprofiles

WIP: Rewrite this to make it clear the roles and profiles pattern would be