Implement full-stack saving on moc category

@mgorbach 
Addresses #14
Maybe it doesn't do anything, but I've seen it in a few places to denote whether a pointer passed in has any effect as an input param or is just assigned a value on output, or both. Hence `out` `inout` etc.