* Fix parse_lambda

When parse_lambda makes a copy of the body, it needs to check if the body is a
symbol, which looks like [type_form,0,X], where X is a certain structure.  In
that case it needs to hold(X) to get the count right.

This is a kludge, and I believe the clean way to fix it is to change the symbol
structure to:

	[type_form,
		[(type_name|type_string), 0, <struct str *>],
		[type_long, 0, <long line_no>]]

That way both sides of a form are always non-zero, which means the simple
copy will hold both sides and the kludge won't be necessary.

The current symbol structure is:

	[type_form,
		0,
		[type_apply,
			[(type_name|type_string), 0, <struct str *>],
			[type_long, 0, <long line_no>]]
		]]

The new proposed structure even just looks more elegant at first glance.

* Change module structure

I'm also starting the process of taking functions that don't need to be linked
to the executable and putting them into libraries instead.  So in particular I
have factored qfile.c out into a new qfile2.c, which goes in a library.