Here's a patch for this issue that makes the scheduler use fair-scheduler.xml off the classpath if no other allocation file is specified through mapred.fairscheduler.allocation.file. (We keep this parameter for backwards compatibility).
The only tricky part was using the URL from the ClassLoader's getResource method instead of a String for the path to the file. I followed the example set in Configuration of having an Object as the allocation file name that may be either an URL or a String, because I didn't want to force users of the existing jobconf parameter to supply a file:// URL, and I also didn't want to append file:// in front (this doesn't work with relative paths, and although the docs have said to use an absolute path since the scheduler was released, it could be confusing).
I haven't included a unit test because the code changes are minor and I can't think of an easy way to unit test this. However, I did manually test that configurations are found whether the default config file fair-scheduler.xml is used or another file is specified through the config parameter, and also that the allocation file is reloaded at runtime in both situations.
I've also updated the docs to reflect the new functionality and emptied-out the fair-scheduler.xml template so that it creates no pools by default. The docs cover all the features that were described in the old fair-scheduler.xml.template.