Move the widget register code to its own file.

Part of cleaning up and polishing the existing widget code.


git-svn-id: http://svn.gna.org/svn/wesnoth/trunk@56462 75b3775d-3801-0410-9e12-e2e43121521d