refactor(dropdown): use a error message on invalid options

 When an options value is not array nor object, we should throw an
 error with a understandable message, instead of no message, as it
 used to be.
fix(dropdown): properly handle promises as options

When the old value and the new value of the options list
are promises, they weren't properly updated because the
 watch wasn't catching this case.