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 )
This parameter's name is misleading, as far as I can see. It actually determines the initial number of *free* resources, and `initial_count` makes me think of the number of *used* resources, since `max_count` is the maximum number of resources.

Why the weird inverted parameter? Does the CTR API work like this? I'd expect the most intuitive way would be to pass in the number of *used* resources.