src: split src/src.go into several files

It is a questionable choice. Indeed, this is not the "Go way" to do,
but the problem was that src.go was becoming too big and too complex.
Putting every type declaration in the same file in addition to some
functions for creating new instances was clearly too much. The file
became hard to read. So the question was: how to split this file? The
solution I propose is mostly one type declaration per file (with some
exceptions). This implies the creation of a lot of files, but the file
names are very explicit, thus it makes easy to manipulate them IMHO.
Moreover, later on, we will have to add a certain amount of methods for
these types.