Reduce header file dependencies; use ptrdiff_t instead of size_t for array size specification, pulling in cstddef rather than cstring