Only export public symbols.

I've set up the project to only export the symbols defined in public headers shipped with the framework. At first glance, this appears to break binary compatibility (and in theory it does). However...

All symbols not declared in public headers are considered private API. Because the headers for these symbols were never shipped with Sparkle binaries, no one could realistically be using the symbols that are no longer exported and thus we are still binary compatible with 1.6 and merely formalizing the existing public API.

If someone was using private headers, then yes, this change would break their app but there is no reason we should guarantee binary compatibility for private API just as Apple, Microsoft, or any other large software project also doesn't.

So... I think this change is OK for master. Discuss?

Current list of exported symbols:

    $ nm -g Sparkle.framework/Versions/A/Sparkle | grep ' [ST] '
    00000000000508c0 S _OBJC_CLASS_$_SUAppcast
    00000000000508e8 S _OBJC_CLASS_$_SUAppcastItem
    0000000000050d98 S _OBJC_CLASS_$_SUStandardVersionComparator
    0000000000051018 S _OBJC_CLASS_$_SUUpdater
    0000000000050898 S _OBJC_METACLASS_$_SUAppcast
    0000000000050910 S _OBJC_METACLASS_$_SUAppcastItem
    0000000000050dc0 S _OBJC_METACLASS_$_SUStandardVersionComparator
    0000000000051040 S _OBJC_METACLASS_$_SUUpdater
    0000000000045bb0 S _SUUpdaterAppcastItemNotificationKey
    0000000000045bb8 S _SUUpdaterAppcastNotificationKey
    0000000000045b98 S _SUUpdaterDidFindValidUpdateNotification
    0000000000045b90 S _SUUpdaterDidFinishLoadingAppCastNotification
    0000000000045ba0 S _SUUpdaterDidNotFindUpdateNotification
    0000000000045ba8 S _SUUpdaterWillRestartNotification
    000000000003455b T _objc_retainedObject
    0000000000034564 T _objc_unretainedObject
    000000000003456d T _objc_unretainedPointer

PS - protocols don't export any symbols, so no need to mark them.