Allow multiple inputs to be given in tests

Sometimes people need to send multiple inputs in a single test, for example, to test a state with multiple screens (`BookletState` and `PaginatedChoiceState`), or to test how their app handles a particular path of inputs.

The way this is done at the moment is to manually enter the state metadata and creator opts. This is confusing, and it is often possible for the states to behave differently in tests than in production because of badly set up metadata or creator opts.

The plan is to allow `tester.input()` to accept an array of inputs (on top of what it already accepts). Setups will only count for the first interaction, subsequent interactions will rely on the user data from the previous interaction, and checks will only happen after the last interaction.
On the second comment, I've removed the check that stops a send if no input was given because:
  1. it turns out were always sending anyways (before this PR, `self.data.msg` was getting the user address as a property from the setup tasks)
  2. the sandbox is run when a user or event message arrives. At the moment, we only really handle user message in tests, so not sending doesn't really make much sense.

Maybe should add back the ability of controlling whether a send happens based on `.input` when we add the ability to send event messages using `AppTester`?