A first attempt at bubble sort
refactored bubble_sort
bubble_sort_by accepts a block