SVC: Implemented svcCreateSemaphore

ToDo: Implement svcReleaseSemaphore
* Some testing against hardware needed
SVC: Implemented ReleaseSemaphore.

This behavior was tested on hardware, however i'm still not sure what use the "initial_count" parameter has
Semaphore: Implemented the initial_count parameter.
Semaphores: Addressed some style issues
Semaphore: Removed an unneeded function
Kernel/Semaphores: Addressed some issues.
Kernel/Semaphores: Invert the available count checking.

Same semantics, idea by @yuriks
Kernel/Semaphore: Small style change
Kernel/Semaphores: Fixed build
Restore the original console color after logging a message.

Fixes #277
Merge pull request #278 from yuriks/log-colors

Restore the original console color after logging a message.
Clean up armdefs.h
Update gitignore with OS-specific global filetypes.
Merge pull request #257 from lioncash/gitignore

Update gitignore with OS-specific global filetypes.
ARM: Pull some SkyEye fixes from 3dmoo.
Merge pull request #273 from bunnei/more-skyeye-fixes

ARM: Pull some SkyEye fixes from 3dmoo.
Merge pull request #246 from Subv/cbranch_1

SVC: Implemented Semaphores
Merge pull request #276 from lioncash/decrappify

Clean up armdefs.h a little.
Remove SyncRequest from K::Object and create a new K::Session type

This is a first step at fixing the conceptual insanity that is our
handling of service and IPC calls. For now, interfaces still directly
derived from Session because we don't have the infrastructure to do it
properly. (That is, Processes and scheduling them.)