add: possibility to have other backends in FakeNagiosEnvironment

This permits to drive FakeNagiosEnvironment with customised start/stop commands.
Maybe something like this works better (untested pseudo-code code follows)

```
def start(self, start_command=None):
  if not start_command:
    start_command = self.start_command

def create_minimal_environment(self):
  ...
  nagios_binary = self.config.guess_nagios_binary()
  start_command = '{nagios_binary} -d {config}'
  self.start_command = start_command.format(
    nagios_binary=nagios_binary, config=self.config
  )

def create_shinken_environment(self):
  """Shinken specific quirks."""
  # TODO: I am pretty sure all these service commands do not start an isolated instance
  start_command = 'ln -s /var/run/shinken/arbiterd.pid {tempdir}/nagios.pid && service shinken-broker start && service shinken-poller start && service shinken-reactionner start && service shinken-receiver start && service shinken-scheduler start && /usr/bin/shinken-arbiter -c {cfg_file} -d && sleep 10'
  self.start_command = start_command.format(cfg_file=self.cfg_file, tempdir=self.tempdir)
```

Now calling the code would be somethink like this:
```
env = FakeNagiosEnvironment()
env.create_minimal_environment()
env.create_shinken_environment()
env.start()
```
Again, i think it would be cleaner to have a specific FakeShinkenEnvironment class.