Normalize in server package
Separate API from base package
If width is passed, set height to the same as witdth
If height will be passed too, it will overwrite it anyway.
Make variables more consistent
Rename opt.Pattern -> opt.Mask
Normalize in opt.FromForm directly
Rework diagonal drawing
Fix rectangles too.
Add plain pattern, set it as default
Add pattern option, set move defaults to options.go
Add deepcopy func for opts
So that default options stay the same
Add Desc to Options, move Options to options.go
Separate options logic into their own file, add comments