Added K64, K20, KL05, and KL46 support.

- Created a parent target.Kinetis class that contains the shared
  unlock sequence.
- Refactored mass erase operation into new massErase() method in
  target.Kinetis.
- Added createSecurity() method on target.Kinetis, called from init().
- Slightly changed mass erase and added check if mass erase is even
  enabled before trying it.
- target.Kinetis subclasses set a mdm_idr attribute to the expected
  MDM-AP IDR register value, checked in target.Kinetis.init().
- Added K64 test binary to blink LED.
- Added K64 support to basic_test.py.
- Fixed flash.Flash.flashBinary() by using the actual flash page size
  instead of a fixed size of 1024.
- Added entry point value for sector erase function to flash_algo dicts
  for Kinetis devices. Not yet used.
Fixed misspelling in GDBServer.
Made classes derive from object.
Added subpackage imports to pyOCD.__init__.
Added shorthand read/write32/16/8 methods to CortexM target.
Fixed misspelling in basic_test.py.
New Cortex-M4 features in CortexM class.

- Support for reading and writing all available registers, including
  MSP, PSP, CONTROL, PRIMASK, etc, and FPU registers.
- New readCoreType() method on CortexM that reads the CPUID register
  and determines the Cortex-M core type (M0, M3, M4, etc.) and
  architecture (ARMv6M or ARMv7M).
- New checkForFPU() method that determines whether the FPU coprocessor
  extension is available on a Cortex-M4 processor.
- setupFPB() now also gets the number of literal comparators, but no
  actual support for those has been added.
- Fixed bitmask for C_SNAPSTALL bit in DHCSR.
- Kinetis target class calls readCoreType() and checkForFPU() in its
  init() method.
- Kinetis.massErase() now verifies the erase was successful by making
  sure that security is disabled afterwards.
- Updated basic_test.py with tests for new features.
Doxygen documentation generation.

- Added Doxygen configuration file.
- Added Doxygen HTML output directory to .gitignore.
KL02 and KL26 target support.

- Added KL02 and KL26 targets and flash algorithms.
- Changed memoryMapXML strings in all flash modules to use docstring
  format so quotes don’t have to be escaped.
- Corrected RAM range in memoryMapXML for all Kinetis devices, to
  covert split lower/upper ranges.
- Fixed memory sizes for K64 in memoryMapXML.
- basic_test.py now only tries to test S0 register access if the target
  is known to have an FPU.
Moved memory map XML from flash to target.

Signed-off-by: Chris Reed <flit@me.com>
Target improvements.

- Target objects now have a reference to the flash object, a part number
  string based on the class name.
- Moved memory map and target XML strings inside target classes, removing
  the need to set instance attributes.
- Added default values of some instance attribtues and new setFlash()
  method to target.Target.
- board.Board class calls setFlash() on the target object after creating
  the flash instance.
- target.Kinetis uses the new part_number attribute in error messages.
Using super() to invoke superclass init methods.

- Also made USB backends and CMSIS_DAP class properly init their superclasses.
Merge branch 'master' into dev_frdm_support

* master:
  Minor improvements to basic_test.py.
  Improved USB backend selection logic.
  Change Windows usb backend to hidapiusb
  add the Arch Pro board
  Fix issue with arguments in self security check method
  Added tags files to .gitignore.
  Initial hidapi implementation.
  debug bin file revert to the previous path
  flash securityBits check in flash.py, each target can overload it
  gdbserver - spaces returned as they were
  gdbserver - debug code removal
  Unescaped data in flashData, security check flashprogram
  Use breakpoint to capture hardfault
  Flash protection bit check
  watermark initialization
  Fix issue#1

Conflicts:
	.gitignore
	pyOCD/__init__.py
	pyOCD/board/mbed_board.py
	pyOCD/flash/flash.py
	pyOCD/flash/flash_kl25z.py
	pyOCD/flash/flash_lpc11u24.py
	pyOCD/flash/flash_lpc1768.py
	pyOCD/flash/flash_lpc800.py
	pyOCD/target/target_lpc11u24.py
	pyOCD/target/target_lpc1768.py
	test/basic_test.py
Merge branch 'master' into dev_frdm_support

* master:
  Fix indentation issues in gdbserver.py.
CortexM register r/w improvements.

- Renamed register key for CONTROL, FAULTMASK, BASEPRI, and PRIMASK
  combined register to 'cfbp'.
- R/W register methods lowercase the provided register name now.
- Fixed bug in error message for unknown register names.
- Disallowing access to fpcsr register if there is no FPU.
Added K20 to basic_test.py.

Signed-off-by: Chris Reed <flit@me.com>
Merge pull request #10 from flit/dev_frdm_support

FRDM board support and other improvements
[fix] issue#11 - print only first 18 core registers.
getRegisters print only core registers

	- new method in cortex_m, to get register name
	- fpu registers are ignored when -g command is sent
Fix socket race condition which can cause bytes to be dropped

Rather than discarding data if it is not a complete packet, keep
appending until a complete packet is formed.