Split off progress bar logic into other file.

To avoid unused properties/attributes in progress bar classes which may
confuse curious end-users of programs implementing this library, and to
avoid wasting CPU time generating the spinner when it's not used, I'm
splitting up the logic of the progress bar into multiple classes.

Done with progress bar and spinner logic.