[headers] add a few more dependency headers found with a quick n' dirty tool

Hacked a quick tool to try to include each header file exactly once
and make sure it compiles properly without any previous #includes.
[arch][arm] fix warning on gcc 4.8.0
[platform][stellaris] fix warning in gcc 4.8.0
[kernel] Fix for non-timeout waitqueue errors in mutex_acquire_timeout
[arch][arm] rules.mk: add rules for arm-linux-gnueabi toolchain

Add rules for finding arm-linux-gnueabi toolchain and set no stack
protection.

When compiled under this toolchain, we get the following linking errors
in the final stage:

undefined reference to `__stack_chk_guard'
undefined reference to `__stack_chk_fail'
undefined reference to `__stack_chk_guard'

Stack protection is default on this toolchain but we don't need it.
[libc] tweak stdio routines to be a bit more standard

change getc/putc/getchar/putchar style routines to take a fake
FILE pointer.
Move log2 to log2_uint to not collide with stdc log2()
[libc] fixup users of newly modified stdio routines
[app][tests] disable printf formatting warnings for printf test
[make] remove -fno-builtin

fno-builtin was mostly unnecessary before, but required some libc
work to run without it, due to standard function signature mismatches.
[scripts][buildall] change the logic to build everything in the projects dir
[projects] remove the unused aboot-* projects
[scripts][buildall] try to guess the number of cpus on linux machines
[scripts][buildall] remove useless line
[kernel] locking primitive cleanup

-Add static intializers for all of the locking primitives of the form:
    foo_t bar = FOO_INITIAL_VALUE(bar);
-Remove the conditional mutex check and just test on DEBUGLEVEL > 0
[app][thread_tests] add a few tests for the static initializers
[include] add better version of STATIC_ASSERT

Uses the new C1X _Static_assert if available
[arch] Add __drivers and __devices arrays to ld scripts.
[dev] Add simple multi-instance device driver model.

Model supports class drivers capable of driving multiple device
instances independently. Implements simple pattern for device life
cycle management. Completely optional and self-contained.
[dev] Add device class APIs for block IO, I2C, and SPI.

Device class APIs are generic interfaces common to drivers of the
same class. An interface is comprised of a standard set of driver
ops and API wrappers that make use of those ops to carry out the
desired actions on the driver.
[git] Add cscope.* to .gitignore.