Linux build system

This pull request relies on the previous pull request which removes all the warnings
from the code.

This change makes several fundamental improvements to the linux
build system:

- Remove duplication: a lot of the common make logic is now in
  a central shared makefile: cocos2dx/proj.linux/cocos2dx.mk

- Quiet by default: unless you specify V=1 on the commandline
  the output is now very clean and quiet.

- Dependencies: gcc's automatic dependancy generation is now
  used (-MMD).  This means that if you change a header file
  then all the object that depend on it now get rebuilt.

- Don't store objects in the source tree: previously object
  files were stored alongside the sources, which meant that
  debug and release object clobbered each other which leads
  to confusion and lots of unnecessary rebuilding.Q

- Library dependencies: each binary now depends on the libraries
  it links aginst.  This means that if the cocos2dx library
  changes then all examples will get re-linked.

- Top level Makefile: there is now a top level Makefile that
  can be shared/used by any platform the uses make as the
  build system (for example NaCl).  Everything can be built
  by simply running 'make' at the top level. e.g:

    make DEBUG=1
    make DEBUG=1 clean