ISO9660: support multi-sector directories.

	Fix apparently missing files in the ISO.

util/iso9660.cpp:
kernel/fs/iso9660.s:
	add simple hash implementation to remember the sizes of extents.

	load all sectors for a directory.
	if a directory entry size is 0, round the offset up to 2kb and continue
	on the next sector (if the extent size allows it).
HTTP: Multithreading.

	SUMMARY

		Schedule a task for each HTTP client connection;
		Use stack instead of static data;

		Add semaphore/mutex to ATAPI.

		Test: http://www.neonics.com, which generates 11 concurrent
		requests for the main page.

kernel/ata.s:
	add [atapi_sem];
	atapi_read12$: semaphore lock.

	ata_wait_irq: use YIELD, not 'hlt'.

kernel/mutex.s:
	no change - suggest YIELD_SEM in LOCK_WRITE \sem.

kernel/net/httpd.s:
	enable forking client tasks.

	add check for closed connection while peeking the socket for data
	(partly implemented - to be committed).

	net_service_tcp_http: store www_file$, holding the file to be served,
	on the stack, since static data 'copy-on-write' for tasks is not implemented.
[minor] optimize array_remove

kernel/lib/hash.s:
	rep movsb -> rep movsb + rep movsd
[WIP] Signal socket on TCP connection close.

	SUMMARY

		Firefox opens multiple connections at the same time, caching
		them.  One of these is usually not used, resulting in a FIN
		being sent on a TCP connection without sending any request.

		The HTTP client thread keeps waiting for socket data, even
		though the TCP layer already knows the connection is closed.

		This commit implements a signal from the TCP to the Socket
		layer to notify of such events.

kernel/net/socket.s:
	add SOCKET_CLOSED internal flag.

	Treat CF=0, ecx=0 on socket_buffer_read as a closed connection
	(it should not return with that value unless CF=1).

	add net_socket_deliver_close: mark the socket as closed
	and signal the socket_buffer semaphore to schedule any waiting tasks.
	They will check the flag, and if it is set, return with ecx=0, CF=0.
	Otherwise they continue as usual, waiting for minimal data
	satisfaction.

kernel/net/tcp.s:
	On rx FIN locate socket by peer address and signal the close event.