Add preconditions to TestBase.expect() that catch semantically invalid calls
that happen to succeed anyway. This also fixes the broken callsites caught by
these checks.
This prevents the following incorrect calls:
- self.expect("lldb command", "some substr")
- self.expect("lldb command", "assert message", "some substr")
- self.expect("lldb command", substrs="some substr")
- self.expect("lldb command", patterns="some pattern")
assert isinstance(substrs, six.string_types), "substrs must be a collection of strings" ?