Improved the code structure

- Created a Widget class that is responsible for rendering any widget.
- The rendering is now done using a subclass of string.Formatter.
- Added a new format_spec called 'fill' which calculates any remaining space
on screen and renders the widget passing this value as parameter.