Headers crossusing refactoting

All types and constants are removed from freeserf.h
Now we can clearly see how modules are using each other.