Move the specific part of the magic __set method into the public set method

This change allow you to set nOS specific fields like providers by passing them into an array.

For exemple, you can do:
```
$oModel->{'wysiwygs->description'} = $my_html; 
```
And with that `$oModel->wysiwygs->description` is correctly set.
But 
```
$oModel->set(array(
    'wysiwygs->description' => $my_html,
));
```
do not work.
This was because the magic setter is just called the first time. So, when the first argument of the set is an array, it didn't pass by the part that try to explode the property with `->`.

By put the "magic" part into the common set part, the explode is try on every property passed in the array.