Don't calculate preserve_pattern in buffer constructor

Calculating it in Haml::Options means it's only calculated once per
engine instance, which yields about a 9% performance gain on rendering
compiled Haml.

This change should be backported to Haml 3.1 to try to get 3.1.9's
performance closer to that of 3.1.4. With this change alone it should be
close.
Convert tabs to spaces