Merge the new libc implementation

This merge introduces a project specific C standard library
implementation which replaces newlib. The main motivations are:
  - solve the portability limitations caused by newlib's build-system
  - move to a smaller and better controlled implementation in order to
    reduce the risk of errors due to unneeded complexity

The libc implementation used it not newly written code, but a fork of
the libc code used in the Trusted Firmware-A project. Some small
modifications were made, and the library was extended by a heap
implementation (dlmalloc) which the original was lacking. For more
details see the commit messages of the topic branch.

Change-Id: I6c7730ee75f233eac6c0409de888dcf424f3d7b4