Changed designated initializer to call [self release] on failure instead of [super dealloc], as per current Apple recommendations
Replaced all Cocoa.h includes with AppKit.h

The actual remote code only really needs Foundation
(after changing OS version check from NSAppKitVersionNumber to NSFoundationVersionNumber),
but it technically needs AppKit.h too for the IBAction declaration.

The test app needs AppKit for the UI of course.
Made all @properties nonatomic

Many are in fact not atomic anyway, so this was the right choice for them.
Others could be atomic, but the 'atomic' keyword was only recently available,
so not backwards compatible enough.  Not specifying either OTOH gives
warnings in new versions of clang.
Added support for ARC, while still supporting MRR and GC

- Added a few #defines to help conditionalize code to support MRR, GC, and ARC.  A little messy, but not so bad.
- Added (conditional) bridge casts as necessary for ARC.
- Conditionalized NSAutoreleasePool vs @autoreleasepool
- Removed a @synthesize in favour of manual implementation to avoid needing messy conditional assign/weak/unsafe_unretained
- Conditionalized dealloc/finalize per memory model

Still compiles back to OS 10.5 & Xcode 3.1.4.