I've been making slow but steady progress on the game. Since I've got a good chunk of the components defined and the majority of operations working, I decided to commit some time to making levels. The levels range from easy / introductory type stuff to more complicated / tricky solutions. After about two hours of effort last night, I now have 20 levels defined. Ideally like to come up with about a hundred (if not more).
Today's main accomplishment was refactoring. Since things are going to be level based, I needed a frameworks supporting this as well as the capability to have various menus. The frameworks I created was derived after studying how Mario Zechner (libgdx guru) implemented his SuperJumper. The concept is fairly simple. You have two primary objects: the game object and screen objects. The game object is the ApplicationListener of libgdx and kicks off the very first screen. The screen objects are really simplified ApplicationListeners themselves, but controlled from the context of the game object. They have a lot of the same methods that you find in the ApplicationListener. Rather than having a single render() method, each screen has an update() and present() method, which are called from the game object's render() method. The update() is for game engine operations while present is for doing all your graphical work.
In this way, you have a separate screen for each activity you want to implement: main screen, help screen, splash screen, game play screen, and so on. At the moment, I only have a PlayScreen, but at least I have the frameworks in place to allow for the multiple screens you see in your typical games.