added support for execution order for "Before" and "After" hook. closes #807

Since the original method was accepting varargs (```Object... args```) as parameter, there was almost no way to add new method with proper parameters, without breaking backward compatibility. 


Can you switch it back to `timeoutMillis` please? I've been bitten too many times by bugs caused by wrong assumptions about units.