Bundle IDs can have non-alpha chars.

IsRunning() now returns PSN, which can be useful.

Various functions check to make sure $Process{$psn} returns a valid value before trying to use it, which was causing some errors.

Fix tests for when launched apps are already open.

Make SetFront() and IsRunning() work properly with bundle IDs and paths.

Use LSFindApplicationForInfo() in tests.

Cleaned up a little for Mac OS X.

Cleaned up stuff. Added SetFront, Show, Hide. Fixed setting of $^E. Improved QuitAllApps to not quit only normal apps by checking processType for "APPL".

Added LaunchSpecs. Use this when the app does not have a unique app ID, the app is not really an app (like the Finder), or you have more than one instance of the app, and want to launch a particular one.

Added IsRunning.

Only launches application if not already open; e.g., won't launch newer version it finds if older version is open.

Added AEDisposeDesc call (D'oh!). Dunno why I forgot this.

General cleanup, rewrite of method implementation, no longer support versions prior to 5.1.4r4, addition of Quit methods, methods return undef on failure (most recent error in C<$^E>, but could be multiple errors; oh well).