Refactored Bubble's shape and text management

Moved Shape and TextBlock stuff into their own respective classes for clarity.