Define behaviour for properties with None values.

Now that Ref and Fn::GetAtt might return None values, behaviour for
properties with None values needs definition.

This change will treat a None value in the following way:
- if there is a default in the schema, that value will be used
- otherwise a default is used depending on the type ('', False, 0, [] {})

Fixes bug: #1192142

Change-Id: I59ae32c1c32b1bfede7d775aa845cd14246040e1
(cherry picked from commit 15bdfe029eb9274fd37ad2d6e8ec3001ec6eaf8e)
Fix SecurityGroups for AWS::AutoScaling::LaunchConfiguration

Backport of https://review.openstack.org/#/c/29503/

Fixes: bug #1180878

(cherry picked from commit 990bbbbd462f29a811a97718d679e1167c5982c0
 The test embedded template doesn't exist in grizzly, so the
 test_instance_group.py change is not needed)
Change-Id: Ie3b0663093c9c4bae14cf3311a65ff92715af8c9