Merged fix from the selection_tool branch.
Enforces python2.6 / 2.7, thanks to orsonmmz
switching to the new python scripting console icon
Placing modules with a minor bug.
Changed PCB_EDIT_FRAME::setTopLayer() to PCB_EDIT_FRAME::SetTopLayer() and changed to public (as it had exactly the same functionality).
Added zone drawing tool.
Added keepout areas drawing tool.
Fix a minor error in class D_PAD: void D_PAD::Flip( int Y ) changed to virtual void D_PAD::Flip( const wxPoint& aCentre ) (as defined in BOARD_ITEM)
Scripting: fix compatibility current pcbnew version in 2 examples and the default extension of board files  in board.i (was .kicad_brd, now is .kicad_pcb)
Small GAL refactorization, mostly correcting constness.
Cursor is in world coordinates.
PATCH: making component choosing (much!) more usable
PATCH: making component choosing (much!) more usable
Refactoring: made VIEW, VIEW_CONTROLS, BOARD and PCB_EDIT_FRAME fields in DRAWING_TOOL.
Refactoring: zones and keepout areas are drawn using the same function.
Some more minor refactorization.
GAL::GetGridPoint() returns point in world coordinates.
Refactorization: moved drawing 45 degree multiple line to a function.
New items are created using pointers (instead of copying automatic variables when drawing is finished).
Added a few asserts. Made some steps idiotproof.
Eeschema:  Better naming for private struct: public fields uppercase.
* make some more fields 'const' that can.
* Instead of previous/next _visible_ element, Go through
      previous and next element. Otherwise the cursor stops moving
      if the item is only partially visible.