package_cppsp: added run_cppsp and cppsp_clean scripts

Conflicts:
	package_cppsp
fixed package_cppsp
cpoll: MemoryStream: adjust bufferPos if it's out-of-range after a setLength() call
delegate.H: DelegateChain: deallocate entire chain in destructor
cppsp: show working directory of compiler in compilation error output
cpoll: re-read EventHandlerData::op during repeat

this fixes a serious cpoll bug where if the following conditions are met
during a callback invocation:
* the callback function initiates a new cpoll asynchronous operation
with the same event type (EPOLLIN vs EPOLLOUT) as the old event (the
event that caused the original callback invocation)
* the new operation type (op) is different from the old
* the new operation is marked as "repeat"
then the old operation type (op) will be dispatched, passing garbage to
the system call

for example,
File f;
//...
f.write(..., cb1);

void cb1(int) {
  f.repeatSend(..., cb2);
}
void cb2(int) {
  //...
}

when cb1 returns, cpoll will end up dispatching another write() instead
of a send()