Add multiple compile queues support (multiprocessing)
Add header stats cache for need_update() routine
Add compile order consistency
Merge branch 'master' of https://github.com/screamerbg/mbed
Reordered the logics around compile_queue()
Revert global toolchains optimizations
Changed comment
Add -j option to build.py, build_release.py and make.py
Multiple compile jobs are not enabled by default unless -j 0 or -j >1 is specified
Remove --depend option that is specific to armcc
Refactoring of the python multiprocessing code to use queues load balancing based on apply_async();
Use the returned result by apply_async() to fetch compile_worker() results and get rid of python queues;
Optimize the threads handling code
Reuse compile threads via self.mp_pool
Restore verbose logging
Trade slightly more CPU usage for less memory usage
Fixed compile with IAR
Added get_dep_opt for ARM class
Merge branch 'master' of https://github.com/mbedmicro/mbed
Merge branch 'master' of https://github.com/mbedmicro/mbed

Conflicts:
	workspace_tools/build.py
Add _assemble() and _compile() methods to generate one or more commands per source file
Support multiple commands per compile
Reuse _assemble() and _compile() for sequential and parallel compiles
Preserve compile(), compile_c(), compile_cpp() and assemble() methods functionality
Merge pull request #395 from screamerbg/master

Support for multiple compile queues/jobs, stats cache and compile order consistency