change point_count in draw_polygon to ui_t

engine_fill_polygon() is being worked on, and will use ui_t as its
point_count. We also change it here to make the interface unified.
fix up msgs and callbacks for draw_polygon

Because the point_count changed from si_t to ui_t.
allow skipping area check in set/get pixels

When set/get pixel functions are called frequently, the working area
needn't be checked every time. This is changed for the preparation of
engine_fill_polygon().