Added some logic to the LinearVector.moveShape() method that if the
object is outside the min and max x and y, it will call either
reflectAngleOnX() or reflectAngleOnY(), and recurse.

The MAX_X, and MAX_Y are set statically right now, but we will need to
change that when we get the information from the Activity.

There is danger of an infinite loop because if the object is not back in
bounds after the reflect and rebuild, then it will keep pushing it
further out of bounds.