Type check for Message param to avoid AttributeError

Setting the locale iteratively on Messages within a Message may cause an
AttributeError when trying to set the locale on a message substitution
that is thought to be a dict() but may be anything.

Currently even the following code would be a problem:
    msg =  _('This is a message: %s') % 'Hi'

Closes-bug: #1229364

Change-Id: I6fe55ebc4eea5fef1d335ad83a84c4879f7f06f9