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. 


I think if we used `instanceof Long` and `instanceof Integer` we could use that to detect timeout and order, respectively. In other words - Long means timeout - Integer means order.