MDL-43738 behat: Normalization and major refactoring of getters and setters

Every single step that sets or gets a value from a field
has been updated to follow the same behaviour both when
using it through a single step or through generic steps
like "I fill the moodle form with:", to resume all the
changes:
- Created a behat_form_group to re-guess the field type
  and act appropriately setting and getting it's value
- Normalize all getters and setters to use behat_form_field
  children
- Complete behat_form_checkbox to trigger the appropiate JS
  event needed to perform some JS scripts that are listening
- Refactor MDL-43713 multi-select changes and remove
  the two new steps introduced there as that behaviour can
  be managed from the generic getter
MDL-43738 behat: Backport to 2.5

Other issues this patch depends on were not
backported to 2.5 so we need to cover it:
- Add hardcoded waits as MDL-42625 was not
  integrated
- Add behat_form_field::get_internal_field_id()
- Use document.readyState rather than our
  custom JS query (MDL-42625)