Moved some application-bundle specific code from the BundleBuilder class to
AppBuilder, and set the default type to BNDL (overridden in AppBuilder).

This surfaced when trying to build help bundles.
diff --git a/Lib/plat-mac/bundlebuilder.py b/Lib/plat-mac/bundlebuilder.py
index 8502f81..cd370fd 100755
--- a/Lib/plat-mac/bundlebuilder.py
+++ b/Lib/plat-mac/bundlebuilder.py
@@ -83,7 +83,7 @@
 	              CFBundleInfoDictionaryVersion = "6.0")
 
 	# The type of the bundle.
-	type = "APPL"
+	type = "BNDL"
 	# The creator code of the bundle.
 	creator = None
 
@@ -97,9 +97,6 @@
 	# Directory where the bundle will be assembled.
 	builddir = "build"
 
-	# platform, name of the subfolder of Contents that contains the executable.
-	platform = "MacOS"
-
 	# Make symlinks instead copying files. This is handy during debugging, but
 	# makes the bundle non-distributable.
 	symlink = 0
@@ -115,7 +112,6 @@
 		bundleextension = ext
 		# misc (derived) attributes
 		self.bundlepath = pathjoin(self.builddir, self.name + bundleextension)
-		self.execdir = pathjoin("Contents", self.platform)
 
 		plist = self.plist
 		plist.CFBundleName = self.name
@@ -294,6 +290,12 @@
 
 class AppBuilder(BundleBuilder):
 
+	# Override type of the bundle.
+	type = "BNDL"
+
+	# platform, name of the subfolder of Contents that contains the executable.
+	platform = "MacOS"
+
 	# A Python main program. If this argument is given, the main
 	# executable in the bundle will be a small wrapper that invokes
 	# the main program. (XXX Discuss why.)
@@ -355,6 +357,8 @@
 			raise BundleBuilderError, ("must specify either or both of "
 					"'executable' and 'mainprogram'")
 
+		self.execdir = pathjoin("Contents", self.platform)
+
 		if self.name is not None:
 			pass
 		elif self.mainprogram is not None: