Print a nice error if an incorrect property is set on AWSProperty (which doesn't have a 'type').
Not all AWSProperty instances must have properties (for example, Cloudfront's S3Object type). Only fall through to a dict with a 'Type' property if the current class has a 'type'.
Fix pep8 error.
Use getattr() with default instead of clunky hasattr and ternary.
Add unit tests for 'type' AttributeError fixes.
Merge branch 'fix-type-attribute-errors' of github.com:jcoleman/troposphere into jcoleman-fix-type-attribute-errors
Make test python3 compatible

python3's AttributeError doesn't have a 'message'.  Instead you have to
grab that from the args.  Fortunately python2 has args as well.

Tested in both versions, seems to pass.