Add support for customizing structured message

Should solve concerns from issue #7.
Use basestring instead of str, like in FluentHandler._add_dic

For consistency's sake.
Add compatibility with regular (non structured) logging usage

Part of #8.
Fix exception handle while decoding JSON message

This was meant to handle simplejson's exception class but it makes no
sense if it's inheriting from ValueError and would raise an exception
if simplejson is not installed which is not acceptable. See #16.
Add docstring to FluentHandler._structuring
Merge remote-tracking branch 'origin/allow-formatter-customizations'