Fix state inconsistency in StateInfo

Read stage state first when creating StageInfo
Change StateMachine to be based on equality not identity
Change StateMachine to not allow nulls
Deep copy TaskInfo outputs in constructor to avoid ConcurrentModificationException
Replace generic "getService" method in Connector with explicit methods
Synchronize before copying the output items
When driver creation fails properly fire failed event
Add force started splits to task handle so they can be destroyed
Add close to ExchangeOperator to assure ExchangeClient is closed
Optimize DomainTranslation of BETWEEN ranges
Simplify the effective predicate from table scan partitions