smoke and requires_test markers

smoke mark moves smoke tests to the top of the test run
requires_test can mark tests as requiring another test (like, say, smoke tests)