Replaced DefaultDamageRepairer with a YEdit specific one to improve performance on long lines.
Improved the speed of the KeyRule by taking advantage of the fact that every key needs a ':' and then just returning if one is not found.
Changed to inherit from BufferedRuleBasedScanner instead since it seems to improve performance due to fewer calls to org.eclipse.core.internal.filebuffers.SynchronizableDocument.getLockObject() and the get() method in the same object.
Added a DocumentStartAndEndRule for matching the start and end of YAML documents since this is much more efficient than using a regex on larger documents.
Removed the RegexRule since it was no longer used and also inefficient for large documents.