rename list.s in list.asm

the files with '.s' extension are not properly displayed by github.
remove the explicit [BITS 64]

the manual of yasm says that we should avoid declaring [BITS ...]
explicitely.
explicitely set global data items type

nasm lets us specify whether global data items are functions or data.
as for us, we do not have any data atm.

every global declaration of function have been changed from
global function_name
  to
global function_name:function
use local labels wherever possible

this avoids the need of prefixing the redundant label names (e.g. end, loop)
by the name of the function. The latter version is shorter to type and
hides local labels when the object file is desassembled.

Thus, instead of having

function_name:
    jmp function_name_end
    function_name_end:

we have this

function_name:
    jmp .end
    .end:
use a structure to define a list and an element

we make use of the struc / endstruc notation of nasm.

this allows us to have change / add / remove some fields of the so said
structures without having to change the whole code.
consider that list_init is a leaf function

leaf functions do not have to contain a prologue nor an epilogue.
add a function which clears a list

list_clear(&plist)

the function will run through every elements and clear them.
the prehead is updated (first and size are set to 0)