small refactor of speech bubble

- many of the classes I wanted to subclass to make this way easier to work with were declared as final classes
- made this strictly into a factory class instead to keep things simple
- also only using one icon generator class for the activity