Multiple spell reflection

How it supposed to work (clientside view):

1) You must have Spell Reflection aura at the moment when spell is launched (SpellGo).
2) If spell is instant Spell Reflection is instantly removed, else Spell Reflection if removed when missile reaches you.
3) If Spell Reflection aura duration reaches zero while first missile didn't reach you yet then aura stucks at flashing 0 until this first missile reaches you.
4) During this period from SpellGo until spell reaches you any spell launched at you should be reflected (if you can reflect it ofc).

Sorry for my English.

General conversation along with prooflinks and videos can be found on forum:
http://www.trinitycore.org/f/topic/9267-multiple-spell-reflection/

Closes #10391 
this should be std::floor() instead