Implemented Grayscale filter correctly and improved some code.
Halftone could be improved by applying grayscale before applying Halftone and also adding a thread to the convert() methods