Tests and IHasStateValidationAsync improvements

Most behaviours now have tests. Many of them were failing at first due to bugs created while porting, or issues that were residing inside navigator-as3.

The main improvement is related to the ```IHasStateValidationAsync``` behaviours. States are validated (and asynchronously prepared) in order that they were mapped, So if one state validator returns false, it won't try to validate other responders.

Also when a responder says it validates a state. It still needs to have a responder explicitly mapped to it. Else a validating responder would automatically validate an infinite amount of substates which is not likely what you want. If that were the case you should map a responder with wildcard states.