Rudimentary checkbox handling
Widget bug fix - multiple partials share same name, and so errors

Happened with code like

```
<form>
	<dtx:FormInput />
	<dtx:FormInput />
	<dtx:FormInput />
	<dtx:FormInput />
</form>
```

Basically when "FormInput" gets called the first time, it runs
the macro for that partial, which resets the static var that we
use as our counter.  Solution was to stop using a `static var count:Int`
and start passing around a `Ref<Int>` instead
Widget bug fix: initialize partials before any setters call

If a setter referenced a widget, it may have errored.  Now
widget calls go before the rest of the code.

Example of error code:

```
Welcome $name:
<dtx:TextInput defaultValue="name.toLowerCase()" dtx-name="input" />
```

In this case, set_name() would call `input.defaultValue = name.toLowerCase()`,
but at that point `input` did not exist.
Widgets: make sure expressions used in partial calls are initialized