WIP/PENDING IBase methods could be clearer

**IMPORTANT**  _WIP DO NO MERGE_

_Requires PR https://github.com/calabash/calabash-ios/pull/402 be merged first_.

## Motivation

While writing the docs for the IBase class, I saw that there were a number of cases where the code was unclear.  

### `trait` control is unclear

This is a straight refactor with no behavior change.

### await and transition option handling

These might be breaking changes.  The code as written is very confusing.   I *think* I understand the intent...

## todo

- [ ] @krukow needs review
- [ ] needs rspec tests