Fixes #6078, #6300, BZ1105175, BZ1097054: prevent invalid values in limit fields.

This commit changes the way we handle limited fields such as Content Host
number of systems and Activation Key usage limit.  Instead of representing
"unlimited" as -1 we now represent it as a boolean on the object.