In trying to start using libswoc I ran in to some build issues. I put this partially in to an earlier PR updating libswoc but was requested to make it a separate PR.
This PR does two things. The major one is to move "lib/records" out of "lib" and in to "src" and "include", splitting the headers from the implementation code, to be more consistent with other base libraries such as tscore. The move is needed for two reasons. * Consistency - "lib" has transitioned from internal libraries to third party libraries. "records" is the anomaly here, as it is the only one in "lib" that is internal. That should be changed. * Relatedly the presence of a non-third party library in "lib" creates build ordering issue where it is necessary to build "lib" first to because of the third party support for other base libraries, but also to not build it early because "records" depends on other internal libraries such as tscore. In my view the best approach is to go all the way on making "lib" third party only and build it first because at that point, by definition, "lib" cannot have any dependencies on our code base. This doesn't fully solve the problem, because "src" contains a mix of code, some of which is depended on by other top level directories (e.g. iocore depending on tscore) and final build objects such as traffic_server. Currently this is dealt with by a make in the top level "Makefile.am" to specifically build those dependencies first, but it would be better if there was a non-cyclic dependency graph on the top level directories. However, baby steps - this is clearly better and I am trying to minimize PR size.