Refactor *sweeps*

This splits *sweeps* routine into smaller pieces separating communication from MHD algorithm