Add the proper file for including libraries
Allow the user to type in the upload port field
Implement proper uploading for atmega32u4 based Arduinos (leonardo, micro, esplora)

* These arduinos don't have FTDI chip and the usb communication is handled
  by the main CPU.
* To do a proper upload the post build step has to reset the arduino and
  then wait until it restarts in the bootloader.
* This is what this patches does.
* Works only on Linux (probably other unixes)
* Use avr109 programmer mode for avrdude. This is a required on my machine.
Use board id instead of variant when setuping the paths for object files and final binaries
Use wxString instead of string, to prevent odd problems
Use an array of tables for defining a target's parameters
Initial support for adding targets to an existing project (requires rev9843)