Initial check-in to switch to newer GCC and mbed SDK.

Now uses revision 43 of the mbed SDK which has been compiled for use with the
newer GNU ARM Embedded Toolchain.  I tested with the 4.6-2012-q1-update.  The
install scripts haven't been updated to pull down this version of GCC yet
though.  It still pulls down an older Code Sourcery Lite.  I will attempt to
fix the install scripts before merging back into master.
Replacing SDFileSystem sample with HTTPServer sample.

Both samples make use of the SDFileSystem but the HTTPServer sample uses a
source included version of the FATFileSystem library and also demoes how to
use raw lwIP APIs to provide a network service like HTTP.
Change the format of the disassembly to be more useful.
Adding initial mri support.
Wrap _isatty to return 1 for stdio handles.
Remove some files not needed for latest mbed SDK.
Changed library link order.

Previously I was pulling in all of the mbed SDK and standard C/C++ libraries
twice.  I found that only libgcc and libc have a double circular dependency
now so I just repeat those and not all of the rest of the libraries.
Add FileTest sample.

This sample is pretty good at using a lot of the various gdb remote commands
and verifying that they work as expected.  It uses LocalFileSystem and the
semihost support in MRI to write/read files on the gdb host PC.
Update LocalFileSystem sample.

Added some more validation to this code:
* Now validates the data returned from fscanf().  Before the buffer was just
  printed.
* Uses fseek() and ftell() to determine the size of file and validate that it
  is the expected 12 bytes in length.
* When not running with MRI debug monitor enabled, uses opendir() and readdir()
  to list the contents of the root directory.  This is disabled when MRI is
  being used since the gdb remote semihost file protocol doesn't support
  directory enumeration.
Add Blink sample.

This sample blinks LED1 through direct use of the GPIO pins without the use of
the mbed SDK library.
Update makefile to create intermediate binaries in LPC1768 subdirectory.

Place *.o, *.disasm, *.map files in the LPC1768 subdirectory.  The .elf, .hex,
and .bin files are still placed in the root source directory.

The gcc4mbed.c file is now compiled by each project into its respective
LPC1768 subdirectory so that the DEFINEs used to build it can be customized
per project to include the desired debug features.
Improved incremental builds.

Now build header dependency files during compilation and include them into
the main makefile so that header file modifications force the proper objects
to be rebuilt.
Decreased size of Blink binary.

I managed to decrease the Blink sample from:
   text	   data	    bss	    dec	    hex	filename
   3692	   1296	    100	   5088	   13e0	Blink.elf
to:
   text	   data	    bss	    dec	    hex	filename
   1672	     12	     40	   1724	    6bc	Blink.elf

Accomplished through the following modification:
* Supplied my own specs file to GCC so that I could remove crt0.o from the list
  of startfiles to be pulled in by GCC.  This allowed me to provide my own
  implementation of _start in gcc4mbed.c which doesn't call atexit() which in
  turns removed the dependency on malloc()/free() for an application which
  otherwise doesn't use dynamic allocation.  This shaves 2k from the binary
  and brings the resulting binary within 396 bytes of the binary created by the
  mbed online compiler.

I also modified gcc4mbed.mk to allow the main makefile to provide an
optimization level for Checked and Release builds rather than always forcing
them to be built at an optimization level of -O2.  Debug builds are still
always built with -O0 to improve the debugging experience.  For example you can
now have a line like the following in your application's makefile and it will
be optimized for space rather than speed:
    OPTIMIZATION=s
Optimize size of HelloWorld binary.

These changes brought the size down from:
   text	   data	    bss	    dec	    hex	filename
  24340	   1364	    128	  25832	   64e8	HelloWorld.elf
to:
  20508	   1364	    128	  22000	   55f0	HelloWorld.elf

Changes made include:
* Provide version of abort() which just calls exit(1) with no raising of
  exceptions.
* Provide version of __cxa_pure_virtual() which doesn't raise exception.
* Provide versions of __aeabi_unwind_cpp_pr*() which don't raise exception.
Check-in size reduced C/C++ libraries.

Master branch w/ old Code Sourcery Lite:
   text	   data	    bss	    dec	    hex	filename
  22000	   1376	    104	  23480	   5bb8	HelloWorld.elf
  22000	   1376	    104	  23480	   5bb8	CTest.elf
   1766	    252	     20	   2038	    7f6	Blink.elf
  63538	   1664	    520	  65722	  100ba	Ticker.elf
  52431	   1456	    404	  54291	   d413	StdIO.elf
  56061	   1460	    424	  57945	   e259	LocalFileSystem.elf
  82708	   1484	   1096	  85288	  14d28	SDFileSystem.elf

Working branch after this change:
   text	   data	    bss	    dec	    hex	filename
  20508	   1364	    128	  22000	   55f0	HelloWorld.elf
  20508	   1364	    128	  22000	   55f0	CTest.elf
   1672	     12	     40	   1724	    6bc	Blink.elf
  21348	   1364	    204	  22916	   5984	Ticker.elf
  43376	   1440	    612	  45428	   b174	StdIO.elf
  54112	   1448	    636	  56196	   db84	LocalFileSystem.elf
  49440	   1448	    636	  51524	   c944	FileTest.elf
 123960	   1480	  25732	 151172	  24e84	HTTPServer.elf
Update MRI to version 0.2-20120601.1

This version of MRI contains fixes to target.xml so that it is possible to
debug with Code Sourcery and GNU ARM Embedded tool chains.
Removed obsolete patches not required for new mbed SDK.
Updated makefiles to work on Windows.
Add gnu make win32 binaries.
Update mac_install script.

Install script now exists to install all of the necessary GCC and mbed related
binaries required to build the gcc4mbed project.  This script takes advantage
of the Mac OS X binaries that I have pre-built and placed in the
https://github.com/adamgreen/GCC-ARM-Embedded-20120316 project.  This includes
a fixed version of arm-none-eabi-gdb which works with the mbed's virtual USB
based serial port.

Changes in this commit include:
* Adding external/osx64 to the path so that a version of make can be pulled
  from that location and used for builds.  This might make it possible for
  gcc4mbed to build on a machine which has never had Xcode installed.
* Updated .gitignore to ignore files created as part of the Mac install
  process.  Also removed external/FATFileSystem since it is has been removed
  from the project.
* Installer now installs the March 2012 version of the GNU Tools for ARM
  Embedded Processors rather than a year earlier build of Code Sourcery G++
  Lite.
* Tools are now installed in a directory called gcc-arm-none-eabi in the root
  of the gcc4mbed project.  This can remain the same for future versions of the
  tool chain.
* Added a final step which cleans up intermediate files that are no longer
  required after the installation has completed successfully.