Don't adjust whitespace if buffer has preserve tag

This is in references to various issues on Github, including:

Issue #532, #519, #516, #506, and #503.

Recently I released 3.1.5 to work around a change in Rails 3.2.3 which
made textarea helpers append newlines to the opening tag. Rails's
motivation for this change was to fix a longstanding bug which impeded
the ability to save texarea content with leading newlines.

Unfortunately, Haml 3.1.4 treated this newline as content, rather than
as a seperator between the textarea tag and its content.

Solving the issue was not simply a matter of decoding the newline,
because in indented mode, Haml would add spaces before the newline in
partials, making nested textareas have spaces before their content.

Haml 3.1.5 solved this by adding <haml:newline/> rather than a newline,
and monkeypatched Rails to replace it with a real newline after the
document was rendered. You ever do something you just *know* is going to
cause problems, even though all your tests seem to indicate things are
working fine? Yeah, I know that feeling.

As it turns out, monkeypatching the Rails does the actual
rendering is not as easy as it seems. First, because there are several
places where a monkey patch needs to be applied. Second, because those
modules are not always loaded, and it's not very nice to force people to
load them in order to use Haml: an application may have a very good
reason not to have loaded part of Rails.

Last but not least, the monkeypatch caused <haml:newline/> to appear in
some Erb documents when the haml gem was loaded for use elsewhere in the
applcation.

This commit attempts to make a simpler and wiser solution to the issue.
Rather than adding some silly tag (WTF was I thinking???), this simple
makes Haml replace the first encoded newline emitted by Rails's textarea
helper methods with a real newline. Then, when rending the Haml
document in ugly mode, everything works exactly as you would expect,
with no need to monkepatch Rails's template rendering.

However this comes with a tradeoff: in order to not completely break
textareas in indented mode, Haml will now make no attempt to reindent a
partials or the output of helpers when they match a very simple regular
expression for opening <textarea>, <pre>, or <code> tags.

This makes textareas work properly in Haml 3.1.6. at the expense of
slightly uglier documents, when those documents contain the listed tags.

Now, everybody knows that you shouldn't rely on regular expressions to
parse HTML. This is where another tradeoff comes in: parsing the buffer
with an XML parser would have a much larger impact on performance, and
Haml is already slow enough as it stands in indented mode. So I've
compromised and used a simple, somewhat braindead, but fast regexp.

This issue has been nagging and annoying, and I apologize to anybody
affected by this, most especially for the <haml:newline/> silliness in
introduced in 3.1.5. Please give Haml 3.1.6 a try (it's currently in the
stable branch) and let me know if you come across any problems. I'll try
to get this release out as soon as possible.

The change is also in the master branch, for those who like to live
dangerously.
Updated Changelog

Conflicts:

	CHANGELOG.md