Modeling Robotics Tasks for Better Separation of Concerns, Platform-Independence, and Reuse