Proposed changes (likely deferred to 6.0.0)

	fsys.cpp & file.cpp split into part that truly requires
	_XOPEN_SOURCE >= 600 and rest

	
	FetchProtocol for string >> operator?

	Use NSPR as an alternate thread runtime base like we do with GNU pth...
	Especially convenient with common use of NSS for future tls.  Do we
	still keep GNU pth option if we do this?

	Use NSPR code base for simulating msw conditional variables for direct
	native msw threading if better than code we have in ucommon, or maybe
	use NSPR in place of native msw threading entirely?

	Add NSS backend for secure alongside openssl & gnutls.

	SSLBuffer does not do validation and peer methods missing.  We should 
	load all ca certificates rather than depend on using a directory path
	for using multiple CA's because the latter depends on hash mapped
	directories for openssl and may not exist as a feature in gnutls.  

	Should we have a new generic ca archive format and ca management tool?

	Certificate paths should be exposed and changable.  Base-name of
	certificate service should be changable.

	PKI related functions in secure library.

	shell parser support for +options, auto collating of short options to
	remove duplicates.

	unicode shell options?

Rejected changes:

	DetachedThread delete this into dealloc() virtual...
		- use Thread::exit() virtual for this purpose instead

	in script engine make expression operands virtuals or expression
	operation itself virtual. - ccscript moved into bayonne, no longer
	needed if there, either.

	changed new operators confined to namespace for include file issues
	with std lib - build and compile issues if not global

	ssl socket low level methods and bio rather than just upper level stream.

	Add serialio and logging class? - rejected; in siot

	Redu and split ucommon.pc and usecure.pc.  This is to get cleaner
	linkages in derived projects.  Also or alternately change 
	ucommon-config to have a with & without secure mode. - for now added
	minimal linking

	move spawn/proc stuff from shell into new proc::, move fsys:: 
	inherited redirect methods and pipe into proc.  This is to clean
	up static linking uses and interdependence of some things.  Maybe
	also proc::release and detach from shell...  ??

	separate enhanced string format and numbers library

