Prevent exportable symbol conflicts when used as static/shared library

This PR renames the `node` struct defined in `expression.h` to `node_st` in an attempt to prevent exported symbol naming conflicts when used as static/shared library within other projects.

While I am certain this is not common, having this patch implemented upstream will help myself out (and possibly others) that wish to implement your applications functionality in additional projects. Thanks!