DOC: begin organizing documents: add DOC/notes/

Makefile:
	create directory root/www/doc/notes [TODO: make dynamic];
	pass only last word (path element) of raw title to txt2html.pl;
	calculate document path depth and relative path to style directory
	to maintain relative paths;
	minor cleanup;

util/doctools.pl:
	strip path from title in TOC;

util/txt2html.pl:
	improve numbered lists;
	use <a name=""></a> instead of <a name=""/>;
	don't make paragraphs when line starts with < or ends with >,
	as matching on both beginning and ending interferees with a
	multiparagraph <li>.

DOC/.index:
	add Notes section for DOC/notes files;

DOC/Architecture.txt:
DOC/notes/BootImage.txt: (ADD)
	move sections on booting and KFS to notes/BootImage.txt;
	remove section on Task Detection as it is duplicated in IPC.txt;

DOC/Scheduling.txt:
DOC/notes/Scheduling.txt: (ADD)
	move notes on scheduling to new file.
DOC updates.

Makefile:
	add doc/index.html as dep for site-doc.

util/doctools.pl:
	add command 'unlisted', to show which files are not in the .index.

util/txt2html.pl:
	add some doc;

	unpack before TOC;
	change <dl> syntax to use '-' instead of '*' as it collides with <li>.

	add [http://..] support
	add [foo: bar] support;

	preserve whitespace in <code>;

DOC/*:
	rename Freedom.txt -> ExecutionEnvironment.txt
	Add abstraction.txt
	move CallingConvention.txt to notes/
	move TaskSwitching.txt to notes/
	move Memory.txt to notes/AddressSpaceLimitations.txt;
	publish Assembly.txt

	layout fixes/updates, typo's etc.
DOC: add linkchecker; fix links.

DOC/*:
	escape sequences that are falsely interpreted as links;

Makefile:
	add site-check goal invoking linkchecker on root/www/doc;
	also use dynamic relative path for --onload in template processing;

util/linkchecker.pl: (ADD)
	parses all html files in the given directory verifying the links.
mem -h: print handle indices aligned.

kernel/lib/handles.s:
	use printf to align handles;

kernel/print.s:
	printf: fix aligning negative numbers in '%Xd' (with X decimal);
OO: check for abstract virtual method invocation

kernel/oo.s:
	invokevirtual: verify the method is implemented, and if not,
	print an error showing the class/method name.

TODO:
	add note on httpd file streaming memory usage.
[WIP] fs, shell: implement delete, move

	NOTE

		Even though the shell and fs have their parts implemented,
		the filesystems themselves must also implement the operations,
		which they, at current, do not.

		Delete should work if the filesystem implements it;
		move requires more work.

kernel/fs.s:
	implement fs_delete;

	partially implement fs_move. To be done: mtab check, existence
	checks, move if cross filesystem.

kernel/shell.s:
	implement shell commands 'rm' and 'mv'.
Shell: add 'call'; fix 'exit'.

kernel/shell.s:
	exit: call class_deleteinstance, not mfree.

	call: a hack to call any symbol or address. can be used
	to restart services after killing them, i.e., to kill
	the cloudnet daemons in this version:
		kill -p 9
		kill -p 7
	and to start it again:
		call cmd_cloudnetd
	(this command is not registered in the shell command list).
CloudNet: match nodes by MAC, not IP.

kernel/net/cloudnet.s:
	cluster_add_node: verify the MAC is the same, not IP,
	as it can change due to DHCP, resulting in duplicate entries.
HTTPD: fix /D URL prefix match.

kernel/net/httpd.s:
	the '/D' url is reserved for on-the-fly gzip download.
	404 links such as /DOC/Screenshots/* were also matched
	prior to this commit.