Fix intercalate
Optimise for size 1 take/drop and small appends

In actual use, this happens a lot so it's worthwhile to do: user typing
will insert many characters, 1 at a time.