SMDFile class is moved to its own file & shared between Ebenezer & the AI server (note: need to fix up a few AI server refs before it'll behave correctly)