Fix __timespec_to_ticks() bug
Account for nanoseconds in sys_timer_create()
Faster eventtest

Use nanosleep with > 1s accuracy to speed things up a bit.
POSIX clock_{getres,gettime,settime}() functions

CLOCK_REALTIME and CLOCK_MONOTONIC are supported.
Use void* for kmap_tmp_range(), kunmap_range()

It doesn't make sense to use an integer here, as these functions are
used analogously to malloc/free.
sbrk() system call and libc wrapper

This replaces the malloc and free system calls.  It should be possible
to implement these in user space now.
malloc()/free()

Uses the same allocation strategy as kmalloc(), except that sbrk() is
used to grow the heap when malloc() runs out of free blocks.  free()
doesn't do any coalescing yet, but it should be pretty easy to
implement.
Clean up process.c

create_user_process() is still really ugly, but less so.
Fix siginfo address space bug

The kernel was attempting to read iret_eip from the process' stack
without first mapping it.
Remove unused defines

Remove old FRAME_POOL constants from <kernel/mem.h>
map_pages: use kzalloc_page() for new page tables

kzalloc_page() properly maps the page before zeroing.  I suspect there
are several other issues of this type in paging.c.
Use void* for kmap_tmp_page()/kunmap_page()
map_pages: use kmap_tmp_page() for page tables
pgdir_create: free temporary mapping

Oops.
paging: get_first_free()

This is a cleaner and more general replacement for get_tmp_pte().
paging: use macro to access _kernel_pgd
Move declarations before statements

Mixed declarations and statements are allowed in C99, but it's ugly.
-Wdeclaration-after-statement is added to CFLAGS so that gcc will warn
about this in the future.
interrupts: use asm at file scope for handlers
libc: posix_memalign() and aligned_alloc() (C11)

These are just implemented as wrappers for malloc() which over-allocate
and then align.
libc: getc() / ungetc()