Refactoring fill algorithm

Left and Right are working properly, need to continue to work on up and
down and then recursively fill out the rest of the selected area.