Implemented Widgets.

Widgets are like LEGO blocks that some render HTML snippet. Web pages
can be constructed dynamically by putting a bunch of widgets togetgher.
In future, it'll be possible to decide what widgets to display on a
page from the admin panel.