Save a string allocation inside loop
Save a string allocation inside loop

In the `tag_options` method, strings are continuously added to the
`output` string. Previously, we concatenated two strings and added the
generated string to `output`. By adding each of the strings to
`output`, one after the other, we will save the allocation of that
concatenated string.

Benchmark:

    require 'benchmark/ips'

    sep = " ".freeze

    Benchmark.ips do |x|
      x.report("string +") {
        output = ""
        output << sep + "foo"
      }
      x.report("string <<") {
        output = ""
        output << sep
        output << "foo"
      }
      x.compare!
    end

Results (Ruby 2.2.2):

    Calculating -------------------------------------
                string +    88.086k i/100ms
               string <<    94.287k i/100ms
    -------------------------------------------------
                string +      2.407M (± 5.8%) i/s -     12.068M
               string <<      2.591M (± 7.0%) i/s -     12.917M

    Comparison:
               string <<:  2591482.4 i/s
                string +:  2406883.7 i/s - 1.08x slower

fabianoleittes/rails,illacceptanything/illacceptanything,BlakeWilliams/rails,yasslab/railsguides.jp,mtsmfm/railstest,gauravtiwari/rails,aditya-kapoor/rails,kddeisz/rails,mechanicles/rails,pvalena/rails,Vasfed/rails,pschambacher/rails,tijwelch/rails,gauravtiwari/rails,notapatch/rails,vipulnsward/rails,gavingmiller/rails,starknx/rails,Sen-Zhang/rails,iainbeeston/rails,jeremy/rails,starknx/rails,tgxworld/rails,bradleypriest/rails,riseshia/railsguides.kr,travisofthenorth/rails,mohitnatoo/rails,tjschuck/rails,aditya-kapoor/rails,pvalena/rails,yhirano55/rails,tjschuck/rails,printercu/rails,kaspth/rails,gfvcastro/rails,untidy-hair/rails,palkan/rails,xlymian/rails,hanystudy/rails,gcourtemanche/rails,bradleypriest/rails,yahonda/rails,bogdanvlviv/rails,illacceptanything/illacceptanything,Stellenticket/rails,printercu/rails,schuetzm/rails,arjes/rails,kaspth/rails,Spin42/rails,amoody2108/TechForJustice,notapatch/rails,rbhitchcock/rails,prathamesh-sonpatki/rails,Stellenticket/rails,ledestin/rails,sealocal/rails,travisofthenorth/rails,xlymian/rails,illacceptanything/illacceptanything,samphilipd/rails,mechanicles/rails,Edouard-chin/rails,mtsmfm/rails,kaspth/rails,shioyama/rails,ngpestelos/rails,arunagw/rails,matrinox/rails,yasslab/railsguides.jp,Edouard-chin/rails,illacceptanything/illacceptanything,mathieujobin/reduced-rails-for-travis,ledestin/rails,yawboakye/rails,brchristian/rails,ledestin/rails,iainbeeston/rails,MSP-Greg/rails,bogdanvlviv/rails,stefanmb/rails,georgeclaghorn/rails,vassilevsky/rails,lcreid/rails,ttanimichi/rails,lcreid/rails,marklocklear/rails,elfassy/rails,richseviora/rails,kddeisz/rails,marklocklear/rails,bolek/rails,mtsmfm/rails,brchristian/rails,Edouard-chin/rails,notapatch/rails,coreyward/rails,mohitnatoo/rails,deraru/rails,yawboakye/rails,riseshia/railsguides.kr,printercu/rails,baerjam/rails,voray/rails,mijoharas/rails,tgxworld/rails,MichaelSp/rails,palkan/rails,hanystudy/rails,flanger001/rails,samphilipd/rails,esparta/rails,kmcphillips/rails,yalab/rails,marklocklear/rails,riseshia/railsguides.kr,rossta/rails,Spin42/rails,untidy-hair/rails,mechanicles/rails,rails/rails,matrinox/rails,koic/rails,kachick/rails,Envek/rails,rafaelfranca/omg-rails,yasslab/railsguides.jp,tgxworld/rails,mijoharas/rails,ngpestelos/rails,MichaelSp/rails,MichaelSp/rails,gcourtemanche/rails,rbhitchcock/rails,joonyou/rails,shioyama/rails,vipulnsward/rails,lucasmazza/rails,xlymian/rails,maicher/rails,shioyama/rails,sergey-alekseev/rails,mathieujobin/reduced-rails-for-travis,illacceptanything/illacceptanything,baerjam/rails,schuetzm/rails,felipecvo/rails,utilum/rails,schuetzm/rails,88rabbit/newRails,riseshia/railsguides.kr,gavingmiller/rails,MSP-Greg/rails,BlakeWilliams/rails,yahonda/rails,illacceptanything/illacceptanything,iainbeeston/rails,Envek/rails,alecspopa/rails,gfvcastro/rails,felipecvo/rails,kmcphillips/rails,Envek/rails,rossta/rails,maicher/rails,kirs/rails-1,elfassy/rails,voray/rails,mtsmfm/railstest,shioyama/rails,stefanmb/rails,iainbeeston/rails,bogdanvlviv/rails,pvalena/rails,flanger001/rails,sergey-alekseev/rails,gcourtemanche/rails,arjes/rails,amoody2108/TechForJustice,vipulnsward/rails,rails/rails,vassilevsky/rails,ngpestelos/rails,aditya-kapoor/rails,utilum/rails,fabianoleittes/rails,repinel/rails,starknx/rails,vipulnsward/rails,EmmaB/rails-1,mtsmfm/railstest,coreyward/rails,joonyou/rails,vassilevsky/rails,eileencodes/rails,betesh/rails,untidy-hair/rails,arunagw/rails,arjes/rails,travisofthenorth/rails,kmayer/rails,Erol/rails,yalab/rails,rails/rails,kddeisz/rails,kamipo/rails,tgxworld/rails,fabianoleittes/rails,betesh/rails,rafaelfranca/omg-rails,elfassy/rails,yasslab/railsguides.jp,eileencodes/rails,ttanimichi/rails,Erol/rails,kamipo/rails,arunagw/rails,yawboakye/rails,88rabbit/newRails,tjschuck/rails,illacceptanything/illacceptanything,Envek/rails,kddeisz/rails,MSP-Greg/rails,maicher/rails,alecspopa/rails,pvalena/rails,rafaelfranca/omg-rails,yalab/rails,kenta-s/rails,lcreid/rails,mechanicles/rails,coreyward/rails,jeremy/rails,odedniv/rails,illacceptanything/illacceptanything,mijoharas/rails,kachick/rails,Edouard-chin/rails,matrinox/rails,Vasfed/rails,richseviora/rails,amoody2108/TechForJustice,esparta/rails,joonyou/rails,georgeclaghorn/rails,repinel/rails,Spin42/rails,georgeclaghorn/rails,illacceptanything/illacceptanything,mathieujobin/reduced-rails-for-travis,yahonda/rails,gfvcastro/rails,Sen-Zhang/rails,esparta/rails,yhirano55/rails,eileencodes/rails,prathamesh-sonpatki/rails,assain/rails,koic/rails,illacceptanything/illacceptanything,jeremy/rails,sealocal/rails,pschambacher/rails,alecspopa/rails,utilum/rails,repinel/rails,illacceptanything/illacceptanything,bolek/rails,kenta-s/rails,MSP-Greg/rails,palkan/rails,kmcphillips/rails,tijwelch/rails,EmmaB/rails-1,samphilipd/rails,yahonda/rails,lucasmazza/rails,Erol/rails,mohitnatoo/rails,mtsmfm/rails,tijwelch/rails,pschambacher/rails,Stellenticket/rails,BlakeWilliams/rails,baerjam/rails,rails/rails,flanger001/rails,odedniv/rails,rbhitchcock/rails,voray/rails,ttanimichi/rails,yawboakye/rails,illacceptanything/illacceptanything,deraru/rails,kirs/rails-1,brchristian/rails,koic/rails,betesh/rails,assain/rails,Vasfed/rails,fabianoleittes/rails,repinel/rails,tjschuck/rails,utilum/rails,felipecvo/rails,lcreid/rails,deraru/rails,gavingmiller/rails,BlakeWilliams/rails,Sen-Zhang/rails,kachick/rails,kmcphillips/rails,illacceptanything/illacceptanything,gfvcastro/rails,schuetzm/rails,yhirano55/rails,odedniv/rails,bolek/rails,yalab/rails,assain/rails,kmayer/rails,aditya-kapoor/rails,kamipo/rails,hanystudy/rails,kenta-s/rails,flanger001/rails,untidy-hair/rails,arunagw/rails,esparta/rails,palkan/rails,stefanmb/rails,illacceptanything/illacceptanything,Erol/rails,lucasmazza/rails,deraru/rails,gauravtiwari/rails,bradleypriest/rails,eileencodes/rails,printercu/rails,Stellenticket/rails,notapatch/rails,jeremy/rails,mohitnatoo/rails,rossta/rails,sealocal/rails,kirs/rails-1,sergey-alekseev/rails,yhirano55/rails,illacceptanything/illacceptanything,kmayer/rails,assain/rails,travisofthenorth/rails,prathamesh-sonpatki/rails,EmmaB/rails-1,richseviora/rails,joonyou/rails,betesh/rails,baerjam/rails,prathamesh-sonpatki/rails,88rabbit/newRails,georgeclaghorn/rails,bogdanvlviv/rails,Vasfed/rails