Clean up backend, added broadcast receiver.

+ Cleaned up a lot of the backend code.
+ Instead of storing to static variables, touch positions are
manipulated through the prefs directly.
+ On initialization, animation correctly defaults to centre of screen
(based on how big the image is, not just touch  as it was before)
+ Added a broadcast receiver that listens for a wallpaper changed
action. Used to make it so that, if  you click 'choose background' and
don't end up changing it(AKA pressed back), the animation choosing
screen does NOT popup.
+ Broadcast receiver also knows when you picked 'clear' button and puts
the animation in the centre of the screen, its default position.
+ DYNAMICALLY tell where the wallpaper should be placed in relation to
the screen. Makes it so that different android devices will not have the
wallpaper placed in odd places.
+Call garbage collector at proper times to AVOID causing out of memory
errors.
- out of memory errors still persist if you constantly change
backgrounds very fast and repeatedly.