Re-wrote shift_active_win() to manipulate chain by merely changing the chain pointers instead of actually re-building the whole window chain. Uses new internal helper functions shift_win_forward() / shift_win_backward().
Removed fragment of old shift_active_win(), moved one explanatory comment from it to new one.