Improved build system from linux.

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
Use same top level Makefile for nacl and linux builds.

Also, re-use some of the concepts from the linux build
system (such as quite by default) in the nacl build.

Fix remaining warnings in NaCl builds.
[NaCl] Fix warnings in ARM build
Merge pull request #2093 from sbc100/linux_build_system

Linux build system