Fix dependencies in VS solution.

libmupdf, libmupdf-v8 and libmupdf-nov8 were all calling generate.bat
resulting in occasional build failures. As the latter 2 depend on the
first, only libmupdf needs call it.
Eliminate fz_bbox in favor of fz_rect everywhere.
Pass content/clip bbox to device functions by value.
Introduce fz_irect where the old fz_bbox was useful.

Inside the renderer we often deal with integer sized areas, for
pixmaps and scissoring regions. Use a new fz_irect type in these
places.
Rename fz_rect_covering_rect to fz_irect_from_rect.

It used to be called fz_bbox_covering_rect. It does exact rounding outwards
of a rect, so that the resulting irect will always cover the entire
area of the input rect.

Use fz_round_rect for fuzzy rounding where near-integer values are
rounded inwards.
Always pass value structs (rect, matrix, etc) as values not by pointer.
Rename fz_irect back to fz_bbox.
Fix Android build after rect/bbox changes.
Parts of Robin's PDF editing/page creation commit useful for annotations
Improve exception handling in fz_bound_t3_glyph

Also simplify some other functions using pdf_dict_puts_drop
Add support for annotation creation
Android: implement strikeout annotation creation
Android: use a single fz_page to render both main and hq bitmaps
Fix missing linewidth in pdf-device-created appearance streams