SVC: Implemented Semaphores

This probably still needs a little more testing, but at least the behavior is consistent with hardware in the tests i've performed (See here: https://github.com/Subv/3ds-homebrew/blob/master/semaphore/source/main.cpp )
It's not inverted, it's consistent with, for example, C#'s way of doing it ( http://msdn.microsoft.com/en-us/library/e1hct27h%28v=vs.110%29.aspx ), Microsoft also calls it initial count.
Also consistent with the way Boost semaphores name it: http://www.boost.org/doc/libs/1_57_0/doc/html/boost/interprocess/interprocess_semaphore.html
I don't think we should change it