CRM-12499 - Allow CMS-specific permission expressions

PR #621 broached the issue of referencing CMS-specific permissions from core code, but the practice is potentially confusing and not generally safe (e.g. the same business permission could be represented by different permission-names, and the same permission-name could represent different business-permissions).

This PR introduces a prefixing notation for permissions. More detailed specs are at: http://wiki.civicrm.org/confluence/display/CRMDOC43/Permission+Reference#PermissionReference-Advanced:CheckCMSPermissions%28CiviCRM4.4+%29

I've manually tested under Joomla (which has the most complex permission-checking) and D7 (which was the template for others) -- but haven't manually test D6/WP. There are several new unit-tests, though.

I'm submitting this PR against 4.3 because the original issue and PR (CRM-12499, #621) were filed against 4.3. However, I'm a little nervous -- the patch pushes the limit of an acceptable patch-size for a 4.3.x point-release.

Whoever reviews this: if we want to move it to 4.4, then I'll do that. If you think it's OK on 4.3, then that's fine, too.