Factored out logic for checking if shifts overlap
Added logic to properly determine colissions with recurring shifts