setup blocks can return 3 shapes:
- result tuple: {:ok, new_context}
- (keyword) list: [conn: new_conn]
- map: %{conn: conn}
the return values of setup blocks get merge into a map and passed as a map to
test context. users could however make a mistake by using (for example) a
keyword list as pattern for test context, which will return a function clause
error. this commit tries to return a more friendly error instead