[FEATURE] Permissions

Collection of Permission checkers which can be easily assigned to any object using a simple property and checked with a simple routine.

Usage examples:

```xml
<!-- Simple Permission usage - require at least one of the listed Permissions -->
<flux:field.input name="simple">
	<flux:permission.role.nonAdmin />
	<flux:permission.role.group uid="{settings.allowedGroupUid}" />
</flux:field.input>

<!-- Compound permission "all" - require every listed Permission -->
<flux:field.input name="complex">
	<flux:permission.compound.all>
		<flux:permission.role.admin />
		<flux:permission.role.group uid="{settings.allowedGroupUid}" />
	</flux:permission.compound.all>
</flux:field.input>
```

```php
$groupUid = 123;
$mustBeAdmin = new \FluidTYPO3\Flux\Permission\Role\Admin();
$mustBeInGroup = new \FluidTYPO3\Flux\Permission\Role\Group($groupUid);
$form = \FluidTYPO3\Flux\Form::create();
// Create a Sheet that only Admin may access
$sheet = $form->createContainer('Sheet', 'options')
	->requirePermission($mustBeAdmin);
// Create a Field which only a specific be_group member may access
$sheet->createField('groupProtectedField')
	->requirePermission($mustBeInGroup);

// Using a Compound Permission like the "All" CompoundPermission
$mustBeAdminMemberOfSpecifiedGroup = new \FluidTYPO3\Flux\Permission\Compound\All();
$mustBeAdminMemberOfSpecifiedGroup
	->requirePermission($mustBeAdmin)
	->requirePermission($mustBeInGroup);
$form->createSheet('otherSheet')
	->requirePermission($mustBeAdminMemberOfSpecifiedGroup);
```