added optional `arguments` parameter to BaseCmdLineTool.run() and all tools.

If arguments is given, use that string instead of sys.argv for argument parser.
added some basic tests

- test importing all command line tools
- test that all tools have --help option and "usage:" explanation
- added decorator @all_tools
added testing to setup.py.

- added test requirements nose and psutil (for process info)
- test compatibility with nose

The test suite can be run with `python setup.py test`
Merge branch 'develop' into feature-39-tests
added mlaunch_servers test class. renamed some tests.
better comments.
commented out psutil dependencies for now.
Merge branch 'develop' into feature-39-tests
changes to all tests.
added section on testing for contributing docs.
added mlaunch sharded test.
added more mlaunch tests.
added more tests for mlaunch.
this breaks the testing framework. need to figure out how to properly deal with the sockets in mlaunch tests.
fixed mlaunch tests again. They should now pass. If the test suite is ran in quick succession, the sockets may still be locked.
added more tests to mlaunch test suite.
some cleaning up.
Merge branch 'develop' into feature-39-tests

Conflicts:
	mtools/mlaunch/mlaunch.py
	mtools/mplotqueries/mplotqueries.py
	mtools/util/cmdlinetool.py
Merge branch 'develop' into feature-39-tests
added logfile class. will be a wrapper for file streams, stdin and db logfiles.
Merge branch 'develop' into feature-39-tests

Conflicts:
	mtools/mplotqueries/mplotqueries.py