Add test for attribute methods

When an attribute method (or literal nested hash) is used in an old
style attribute hash and there is also a (non-static) new style hash
there is an error. The generated code looks something like:

    foo.merge(method_that_returns_hash, :foo => 'bar')

Add a test to expose this.
Fix for attribute methods

See 0ea157839f7fbc98d058cf4af2dac0d007ea4416

The call to `merge` isn't necessary since the hashes are merged in the
call to `Buffer#attributes` with `merge_attrs`

This commit can result in different behaviour in certain case, since
the hashes are being merged with `merge_attrs` which handles `class` and
`id` attributes. Previously the value from the 'old style' would replace
the value from the 'new style`

e.g.

    %p.the_class{:class => old_attrs}(class = new_attrs)

(where `old_attrs` and `new_attrs` are methods that return 'old' or
'new')

Previously this would result in:

    <p class='old the_class'></p>

with this commit the result is:

    <p class='new old the_class'></p>
Merge pull request #637 from haml/attribute-methods

Attribute methods