Introduce woocommerce_{$setting}_form_fields filter.

Second take on #3790. I thought long and hard about the different approaches and I came to the conclusion that using `__set` and `__get` is the most reliable way to go here. It may not be the most elegant solution, but it assures that $this->form_fields will always be up to date with the filtered version of form_fields.

Another approach that I considered was introducing `get_form_fields` / `set_form_fields` methods. They are of course, more elegant, but would still mean that we are on the mercy of extension developers.