Introduce FormElement typified element

Plan:

1. add new `FormElement` typified element class
2. subclass the following typified elements from it:
- `LabeledElement` (it covers both Radio Buttons and Checkboxes)
- `FileInput`
- `Select`
- `SelectOption`
- `TextInput`
3. add `setForm` method that will allow `Form` element to inject itself into each element it creates