Tolerate lookup failures in Fn::Select

A wait condition will return an empty dict for its Data attribute
until it has been created, however Fn::Select on Data will be evaluated
before the wait condition is created (for example, during stack-list
or stack-show). The current error raising of Fn::Select leads these
operations to fail.

This change results in Fn::Select evaluation behaving in the
following way:
- KeyError on dict lookup failure results in empty string
- IndexError on list index results in empty string
- Passing an empty string as the value results in an empty string

Closes-Bug: #1243958
Change-Id: I3b01c8ce5dc56e804016274282d2ee69f539bf40