1) how actions are defined depends on each widget - for example here is the action mapping of EditField
2) this is purely a convention - I use the leading dash to indicate that this is not something final/useable (to assign to a theme) but more of an intermediate element - eg to allow it to be reused
3) layout() is called on every widget and it must only position it's own children, if your widget has no children then you don't need to override it. Instead of doing a manual layout you can use DialogLayout, BoxLayout, ColumnLayout or the new BorderLayout to handle layouts.
4) you can find me (and others using TWL) in #lwjgl on freenode.