some more Form tests and some patches proposals

I have serious doubts about proliferating that ugly (and poorly documented) code to facilitate testing. The only legitimate consumer of the class is GroupPermissionForm -- the two are tied so tightly that successfully using GroupFormCheckbox in any other context is unlikely.

Can we just add a predefined "tree" to satisfy testing? This code:

````
$form->addItem(1, 'permission 1');
$form->addItem(2, 'permission 2');
````
results in this:
````
$optionTree = array(
    0 => array(
        'children' => array(1, 2),
        'allchild' => array(1, 2),
    ),
    1 => array (
        'parent' => 0,
        'name' => 'permission 1',
        'id' => 1,
        'allchild' => array(),
    ),
    2 => array (
        'parent' => 0,
        'name' => 'permission 2',
        'id' => 2,
        'allchild' => array(),
    ),
);
````

Could we just use a array like that in the tests to inject a known tree into setOptionTree() ?

Rewriting/refactoring these two classes is best ultimate solution. A lot of the complexity is due to the related client side javascript (and support for a parent/child mechanism that does not seem to be used anywhere.) A more elegant solution could be found, but for now, it still works.