speedup and more organizational changes

updated crop method to blit onto a new surface, instead of copying
entire image and only using a portion of it. defintely faster. Need to
find a way to skip the "to_string" conversion requirement. Also rewrote
DisplayImage slightly to make it clearer how to initialize using
from_image or from_string. Currently hogs 100% of a full core when
running, because it's comparing images all the time. Maybe consider
sleeping for a couple milliseconds if there is no change in the image?