Ensure file listing outside files/ section are not possible.
Ensure files can not be renamed outside files section.
Check path for to-be deleted files.
Can no longer create directories outside files section.
Can not upload files outside files section.
Do no longer call Formatter.close() from Formatter.errorOccurred().
Make BaseFormatter.page private final.
Use PageHistoryFormatter as a composite of SuiteHistoryFormatter.

This will make it possible to get the proper reference to the page history in the suite file.
Move static file generation helpers to TestResponder. Removed getPageForHistory.

A new PageHistoryFormatter is created every time a new test in a suite is run.
Removed PageHistoryFormatter.

It has no added functionality on top of XmlFormatter.
RootPath should be the full page name
Use more common for loop pattern
Don't try to get the exit code when the process is not yet dead

That causes an exception to be thrown, which currently prevents the stuck slim
process from being properly killed.
Merge pull request #376 from raboof/kill_stuck_slim

Regression: a stuck SlimClient is no longer killed
Add an option to run slim as a 'daemon': keep running indefinitely
Let PluginLoader raise it’s own exception: PluginException.
Moved context creation to ContextConfigurator.

Arguments are translated to properties, so they can be used interchangeably with config file properties.
Can now configure all of FitNesse through properties.
use context.getRootPagePath() in PageFactory.

This is one step to make FitNesseContext.rootPath and rootDirectoryName obsolete.
User context.getRootPagePath() in FileResponderTest.

This is one step to make FitNesseContext.rootPath and rootDirectoryName obsolete.