waf: Add descriptions for custom targets.
test: Use preprocessor for glib version check conditional.
Transform coords "pos" to cairo_matrix_t "transform"

This is the first step for implementing the whole rotate/move properly (2nd attempt),
all based on cairo_matrix_t which can  and will be reused for proper drawing too.
Every transform regarding 0,0 on the sheet shall be described with that matrix.
To undo something the simply a stack of matrices of each item can be kept and reverted to at
will.
Always use TRUE/FALSE macros as return values instead of 0/-1.
NodeStore: Use NG_DEBUG for warnings in wire placement.
ItemData: Properly include GooCanvas header.
Node: Use gboolean instead of gint, refine hash func for different int widths.
Part: Recenter part boundingbox on rotation, add documentation.
Sheet: Reduce complexity of event handling.
PartItem: Use CairoMatrix to transform view representation.
ItemData, PartItem, Part: Use g_slice_* for private instance data.
Schematic: Init grid field of ItemData items when loaded from file.
Dialog warning and a memleak fixes
ItemData,Part,PartItem: Split transform matrix into translation and rotation.
Part: Handle part pins when rotating, add developer comments, introduce (unused) flip matrix.
denig: Optionally drawing of bounding box.

Can be toggled on/off with commandline switch.
Rubberband,Sheet: Do not clamp rubberband to grid lines.

Sideeffects: Placement of new items is smooth now.
Schematic,Part: Properly load rotation on save/load.

Bug: Boundingboxes get an offset on schematic re-open when rotated.
Part: Rotate around Part center instead of top-left corner.

Adds loads of debug output.
Part: Honor center argument when rotating.