We defined `noinline` as an abbreviation for the longer version `__attribute__((__noinline__))` which caused name clashes since third party codebases often write it as `__attribute__((noinline))`.
Fixes #61
Both packages had nearly identical dependency requirements, so merging them should help reduce the complexity of the build graph.