html spec runner. broke rule processing engine into its own file for easier testing