Proper tail recursion in core.save_unpack()
Add gui.group{arguments-gui.group.push, func}.

Convenience function that wraps func() in a push/pop pair, i.e.

	gui.group{grow=grow, spacing=spacing, size=size, pos=pos, function()
		do_stuff()
	end}

is equivalent to

	gui.group.push{grow=grow, spacing=spacing, size=size, pos=pos}
	do_stuff()
	gui.group.pop()
Fully disable mouse module on mouse.disable
Cleanup default style
Change gui.checkbox interface.

Remove `info' table. The user is responsible for updating the checking
condition. Old style:

	checkbox = {checked = true, label = "foo", align = "left"}
	(...)
	gui.Checkbox{info = checkbox}

New style:

	checked = false
	(...)
	if gui.Checkbox{checked = checked, text = "foo", align = "left"} then
		checked = not checked
	end

Also note that `label' is renamed to `text'.
Update readme
Allow setting custom widget ids