Merge pull request #20 from srodrig1/x86_64

[merge] Creating initial commit for x86-64 for LK.
[platform][zynq] add an informational printf in the gic driver
[arch][arm] Add spin lock support.
[dev][interrupt][arm_gic] add generic gic driver

-This is a flattening of a pile of changes by Arve Hjønnevåg
[platform][realview-pb] switch to using generic GIC driver
[platform][zynq] switch to the GIC driver for interrupt controller business
[arch][arm] always set the vector base on armv7
[platform][alterasoc] initial support for Altera Cyclone V based SoC

-Initial dev board is a Helio
[arch][arm] update arm code

-Add more precise mmu mappings, update mmu code
-Add dsb/dmbs in particular spots in cache routines
[platform] update platforms to use new mmu mapping routines

-Have alterasoc map all of dram as cached
[app][fibo] print total time taken to run test
[platform][alterasoc] fix timer driver to actually used passed in value
[platform][zynq] update timer code to take tick from target
[platform][zynq] update timer to use global counter for current_time

-switch to DYANMIC_TICK
[platform][zynq] map all of dram as fully cached
[target][zybo] set the heap to the base of dram that's not covered with sram
[kernel] remove current_thread global, add get|set_current_thread() accessor

-Up to the architecture to implement the getter|setter
[arch] update all the arches to implement get_current_thread()

-For ARM and ARM64, use the cpu local registers
-for X86, X86-64, and ARM-M, use a global variable
[dev][timer] add generic cortex-a9 timer driver

Shared between devices that have a cortex-a9 or cortex-a5 core.
Seems that later cortex-a* devices implemented a different timer.
[platform] move alterasoc and zynq timer to the shared generic cortex a9 driver