Implementation tweaks

 - implemented short C functions in Go code to allow inlining
 - rewrote some functions to allow inlining
 - moved the StatustoString() method from Context to Status.String()
 - implemented a couple more context functions
 - tidied up tests
 - syso build option in makefile (only used to work on the package)