Fix handling of bs_match_string translation
Fix handling of bs_match_string translation

Prior to R16B, the bs_match_string instruction worked only for cases
that had a destination variable. As shown by the example below, this
is not always the case and the Dst list can be empty.

  test(<<42, _/bits>> = B) -> B.

This fixes a bug reported by Loïc Hoguin (02/12/2013); the original
post used a different code example to illustrate the problem.

While revising the code, a significant clean up was also performed.

RichMorin/otp,saleyn/otp,awetzel/otp,jamesruan/otp,RGafiyatullin/otp,emile/otp,lantti/otp,bjorng/otp,RJ/otp,hairyhum/otp,matwey/otp,neeraj9/otp,weisslj/otp,emacsmirror/erlang,palas/otp,enikki/otp,bsmr-erlang/otp,mikpe/otp,johanclaesson/otp,lemenkov/otp,lemenkov/otp,sitexa/otp,lemenkov/otp,sitexa/otp,RJ/otp,jemsbhai/otp,awetzel/otp,matwey/otp,RaimoNiskanen/otp,GinjaNinja32/otp,saleyn/otp,emacsmirror/erlang,g-andrade/otp,jinshana/otp,vinoski/otp,riverrun/otp,c-rack/otp,ferd/otp,beni55/otp,basho/otp,RoadRunnr/otp,palas/otp,legoscia/otp,electricimp/otp,aboroska/otp,getong/otp,lightcyphers/otp,GinjaNinja32/otp,klarna/otp,paladim/otp,stolen/otp,goertzenator/otp,RJ/otp,klarna/otp,entropiae/otp,uabboli/otp,bugs-erlang-org/otp,RoadRunnr/otp,vinoski/otp,emile/otp,stolen/otp,fenollp/otp,lucafavatella/otp,klarna/otp,isvilen/otp,fenollp/otp,weisslj/otp,emacsmirror/erlang,NOMORECOFFEE/otp,jj1bdx/otp,saleyn/otp,cobusc/otp,RaimoNiskanen/otp,ader1990/otp,massemanet/otp,bsmr-erlang/otp,falkevik/otp,ahmedshafeeq/otp,uabboli/otp,lantti/otp,lrascao/otp,stolen/otp,RJ/otp,rlipscombe/otp,RoadRunnr/otp,g-andrade/otp,neeraj9/otp,lemenkov/otp,vladdu/otp,RGafiyatullin/otp,lrascao/otp,lhslll/otp,gjaldon/otp,bernardd/otp,palas/otp,goertzenator/otp,RichMorin/otp,sitexa/otp,beni55/otp,ferd/otp,platinumthinker/otp,rlipscombe/otp,vladdu/otp,bjorng/otp,ader1990/otp,dgud/otp,stolen/otp,psyeugenic/otp,aboroska/otp,bugs-erlang-org/otp,emile/otp,lrascao/otp,theom/otp,RaimoNiskanen/otp,jemsbhai/otp,VincentHHL/otp,lrascao/otp,rlipscombe/otp,derek121/otp,aboroska/otp,gjaldon/otp,marquisthunder/otp,dumbbell/otp,krishnakumar4a4/otp,lianghaivv/otp,cnbin/otp,GinjaNinja32/otp,lucafavatella/otp,aboroska/otp,electricimp/otp,basho/otp,gjaldon/otp,marquisthunder/otp,gjaldon/otp,massemanet/otp,derek121/otp,lrascao/otp,tuncer/otp,schlagert/otp,bjorng/otp,benoitc/otp-1,gjaldon/otp,g-andrade/otp,cobusc/otp,vladdu/otp,lightcyphers/otp,ahmedshafeeq/otp,riverrun/otp,electricimp/otp,c-rack/otp,fenollp/otp,klarna/otp,release-project/otp,RGafiyatullin/otp,riverrun/otp,ahmedshafeeq/otp,tuncer/otp,bjorng/otp,aboroska/otp,Teino1978-Corp/otp,getong/otp,dgud/otp,weisslj/otp,lucafavatella/otp,Teino1978-Corp/otp,gjaldon/otp,dumbbell/otp,vic/otp,jemsbhai/otp,benoitc/otp-1,Teino1978-Corp/erlang-otp,emile/otp,uabboli/otp,lantti/otp,kvakvs/otp,tuncer/otp,sammoth-wazoku/otp,msantos/otp,dumbbell/otp,marquisthunder/otp,RichMorin/otp,electricimp/otp,jamesruan/otp,jamesruan/otp,ader1990/otp,johanclaesson/otp,platinumthinker/otp,potatosalad/otp,VincentHHL/otp,jamesruan/otp,goertzenator/otp,haguenau/otp,dgud/otp,erlang/otp,yangchengjian/otp,lianghaivv/otp,lucafavatella/otp,lantti/otp,GinjaNinja32/otp,bernardd/otp,vinoski/otp,kvakvs/otp,msantos/otp,vladdu/otp,VincentHHL/otp,Teino1978-Corp/erlang-otp,paulcager/otp,awetzel/otp,rlipscombe/otp,rlipscombe/otp,lhslll/otp,enikki/otp,entropiae/otp,haguenau/otp,bernardd/otp,tuncer/otp,bernardd/otp,isvilen/otp,lrascao/otp,Teino1978-Corp/otp,palas/otp,goertzenator/otp,schlagert/otp,isvilen/otp,platinumthinker/otp,riverrun/otp,yangchengjian/otp,Teino1978-Corp/otp,saleyn/otp,mikpe/otp,benoitc/otp-1,erlang/otp,marquisthunder/otp,ferd/otp,hairyhum/otp,goertzenator/otp,awetzel/otp,release-project/otp,theom/otp,lhslll/otp,mikpe/otp,getong/otp,c-rack/otp,fenollp/otp,getong/otp,g-andrade/otp,matwey/otp,sitexa/otp,jamesruan/otp,gjaldon/otp,beni55/otp,schlagert/otp,sitexa/otp,jj1bdx/otp,isvilen/otp,potatosalad/otp,derek121/otp,emacsmirror/erlang,benoitc/otp-1,kvakvs/otp,riverrun/otp,entropiae/otp,GinjaNinja32/otp,theom/otp,RaimoNiskanen/otp,ahmedshafeeq/otp,goertzenator/otp,stolen/otp,release-project/otp,beni55/otp,mikpe/otp,mujiatong/otp,paladim/otp,lucafavatella/otp,sdebnath/otp,johanclaesson/otp,platinumthinker/otp,vladdu/otp,krishnakumar4a4/otp,jamesruan/otp,erlang/otp,matwey/otp,erlang/otp,RGafiyatullin/otp,dumbbell/otp,electricimp/otp,Teino1978-Corp/otp,lemenkov/otp,VincentHHL/otp,lrascao/otp,benoitc/otp-1,mujiatong/otp,vic/otp,isvilen/otp,basho/otp,entropiae/otp,haguenau/otp,Teino1978-Corp/erlang-otp,bugs-erlang-org/otp,sammoth-wazoku/otp,weisslj/otp,msantos/otp,emacsmirror/erlang,lightcyphers/otp,palas/otp,neeraj9/otp,marquisthunder/otp,paladim/otp,yangchengjian/otp,erlang/otp,legoscia/otp,RaimoNiskanen/otp,awetzel/otp,entropiae/otp,c-rack/otp,johanclaesson/otp,getong/otp,falkevik/otp,release-project/otp,g-andrade/otp,hairyhum/otp,krishnakumar4a4/otp,tuncer/otp,dgud/otp,potatosalad/otp,lrascao/otp,klarna/otp,RGafiyatullin/otp,theom/otp,psyeugenic/otp,jinshana/otp,bsmr-erlang/otp,hairyhum/otp,release-project/otp,jinshana/otp,cnbin/otp,bugs-erlang-org/otp,bjorng/otp,getong/otp,jj1bdx/otp,bsmr-erlang/otp,kvakvs/otp,derek121/otp,GinjaNinja32/otp,jj1bdx/otp,jinshana/otp,haguenau/otp,lianghaivv/otp,riverrun/otp,RGafiyatullin/otp,dgud/otp,NOMORECOFFEE/otp,paulcager/otp,falkevik/otp,vic/otp,isvilen/otp,falkevik/otp,vinoski/otp,bernardd/otp,paladim/otp,vic/otp,uabboli/otp,bjorng/otp,tuncer/otp,lhslll/otp,kvakvs/otp,jemsbhai/otp,kvakvs/otp,jemsbhai/otp,weisslj/otp,lantti/otp,RoadRunnr/otp,RichMorin/otp,basho/otp,vladdu/otp,paladim/otp,uabboli/otp,sammoth-wazoku/otp,ader1990/otp,RoadRunnr/otp,cobusc/otp,riverrun/otp,mujiatong/otp,matwey/otp,Teino1978-Corp/otp,tuncer/otp,sammoth-wazoku/otp,beni55/otp,entropiae/otp,jamesruan/otp,g-andrade/otp,enikki/otp,g-andrade/otp,saleyn/otp,RoadRunnr/otp,schlagert/otp,paulcager/otp,RJ/otp,jemsbhai/otp,mikpe/otp,ahmedshafeeq/otp,yangchengjian/otp,paladim/otp,Teino1978-Corp/erlang-otp,derek121/otp,emacsmirror/erlang,c-rack/otp,hairyhum/otp,vinoski/otp,platinumthinker/otp,bernardd/otp,marquisthunder/otp,yangchengjian/otp,hairyhum/otp,basho/otp,sdebnath/otp,mujiatong/otp,RichMorin/otp,awetzel/otp,legoscia/otp,lantti/otp,electricimp/otp,klarna/otp,sitexa/otp,msantos/otp,potatosalad/otp,bsmr-erlang/otp,rlipscombe/otp,krishnakumar4a4/otp,emacsmirror/erlang,cobusc/otp,dgud/otp,jj1bdx/otp,erlang/otp,falkevik/otp,lianghaivv/otp,cnbin/otp,legoscia/otp,haguenau/otp,haguenau/otp,lantti/otp,ferd/otp,haguenau/otp,ferd/otp,basho/otp,mujiatong/otp,rlipscombe/otp,emile/otp,release-project/otp,tuncer/otp,legoscia/otp,basho/otp,dgud/otp,vic/otp,getong/otp,paulcager/otp,isvilen/otp,NOMORECOFFEE/otp,enikki/otp,electricimp/otp,entropiae/otp,paladim/otp,falkevik/otp,bjorng/otp,neeraj9/otp,yangchengjian/otp,vinoski/otp,emile/otp,RichMorin/otp,paulcager/otp,falkevik/otp,RaimoNiskanen/otp,palas/otp,paulcager/otp,sdebnath/otp,neeraj9/otp,jinshana/otp,sdebnath/otp,schlagert/otp,fenollp/otp,vladdu/otp,sdebnath/otp,goertzenator/otp,release-project/otp,massemanet/otp,lianghaivv/otp,cnbin/otp,beni55/otp,mikpe/otp,paulcager/otp,bsmr-erlang/otp,vinoski/otp,cobusc/otp,ader1990/otp,marquisthunder/otp,sammoth-wazoku/otp,g-andrade/otp,NOMORECOFFEE/otp,cnbin/otp,marquisthunder/otp,rlipscombe/otp,mikpe/otp,palas/otp,lemenkov/otp,basho/otp,fenollp/otp,msantos/otp,ader1990/otp,benoitc/otp-1,jemsbhai/otp,massemanet/otp,sdebnath/otp,RichMorin/otp,paladim/otp,vladdu/otp,potatosalad/otp,derek121/otp,johanclaesson/otp,lucafavatella/otp,VincentHHL/otp,NOMORECOFFEE/otp,mujiatong/otp,schlagert/otp,bugs-erlang-org/otp,dumbbell/otp,lemenkov/otp,jinshana/otp,rlipscombe/otp,kvakvs/otp,vic/otp,awetzel/otp,RaimoNiskanen/otp,lianghaivv/otp,getong/otp,platinumthinker/otp,NOMORECOFFEE/otp,erlang/otp,isvilen/otp,bernardd/otp,dgud/otp,beni55/otp,dgud/otp,Teino1978-Corp/erlang-otp,emile/otp,massemanet/otp,falkevik/otp,RJ/otp,potatosalad/otp,theom/otp,jj1bdx/otp,aboroska/otp,fenollp/otp,lrascao/otp,emacsmirror/erlang,sitexa/otp,legoscia/otp,ferd/otp,falkevik/otp,ahmedshafeeq/otp,ferd/otp,psyeugenic/otp,lemenkov/otp,jj1bdx/otp,jinshana/otp,johanclaesson/otp,psyeugenic/otp,erlang/otp,stolen/otp,goertzenator/otp,Teino1978-Corp/otp,release-project/otp,mujiatong/otp,platinumthinker/otp,paulcager/otp,schlagert/otp,jemsbhai/otp,ader1990/otp,bernardd/otp,vinoski/otp,schlagert/otp,platinumthinker/otp,klarna/otp,release-project/otp,krishnakumar4a4/otp,vinoski/otp,palas/otp,yangchengjian/otp,emile/otp,dumbbell/otp,mikpe/otp,RGafiyatullin/otp,sitexa/otp,klarna/otp,johanclaesson/otp,dumbbell/otp,VincentHHL/otp,saleyn/otp,neeraj9/otp,ferd/otp,ader1990/otp,kvakvs/otp,RoadRunnr/otp,lucafavatella/otp,matwey/otp,g-andrade/otp,enikki/otp,riverrun/otp,lightcyphers/otp,derek121/otp,vic/otp,haguenau/otp,Teino1978-Corp/erlang-otp,dumbbell/otp,neeraj9/otp,krishnakumar4a4/otp,weisslj/otp,aboroska/otp,kvakvs/otp,Teino1978-Corp/erlang-otp,c-rack/otp,potatosalad/otp,massemanet/otp,aboroska/otp,ahmedshafeeq/otp,matwey/otp,stolen/otp,lightcyphers/otp,vladdu/otp,GinjaNinja32/otp,lhslll/otp,sammoth-wazoku/otp,sammoth-wazoku/otp,erlang/otp,stolen/otp,uabboli/otp,lucafavatella/otp,Teino1978-Corp/otp,GinjaNinja32/otp,emacsmirror/erlang,lhslll/otp,enikki/otp,g-andrade/otp,ahmedshafeeq/otp,fenollp/otp,bsmr-erlang/otp,msantos/otp,beni55/otp,getong/otp,aboroska/otp,enikki/otp,potatosalad/otp,VincentHHL/otp,dumbbell/otp,erlang/otp,mujiatong/otp,lightcyphers/otp,emacsmirror/erlang,cobusc/otp,NOMORECOFFEE/otp,bjorng/otp,legoscia/otp,matwey/otp,weisslj/otp,gjaldon/otp,hairyhum/otp,benoitc/otp-1,bjorng/otp,RaimoNiskanen/otp,lhslll/otp,RJ/otp,awetzel/otp,massemanet/otp,psyeugenic/otp,theom/otp,NOMORECOFFEE/otp,vic/otp,cobusc/otp,electricimp/otp,dgud/otp,tuncer/otp,uabboli/otp,lightcyphers/otp,cobusc/otp,lantti/otp,VincentHHL/otp,lhslll/otp,lianghaivv/otp,lianghaivv/otp,RoadRunnr/otp,benoitc/otp-1,matwey/otp,massemanet/otp,jj1bdx/otp,krishnakumar4a4/otp,sdebnath/otp,sammoth-wazoku/otp,psyeugenic/otp,ferd/otp,saleyn/otp,potatosalad/otp,bsmr-erlang/otp,bugs-erlang-org/otp,legoscia/otp,dumbbell/otp,msantos/otp,cnbin/otp,bugs-erlang-org/otp,theom/otp,RichMorin/otp,weisslj/otp,uabboli/otp,sdebnath/otp,psyeugenic/otp,derek121/otp,jj1bdx/otp,jamesruan/otp,psyeugenic/otp,electricimp/otp,bernardd/otp,jinshana/otp,yangchengjian/otp,RaimoNiskanen/otp,goertzenator/otp,cnbin/otp,neeraj9/otp,lightcyphers/otp,RoadRunnr/otp,krishnakumar4a4/otp,jj1bdx/otp,saleyn/otp,weisslj/otp,RJ/otp,Teino1978-Corp/erlang-otp,mikpe/otp,bjorng/otp,ahmedshafeeq/otp,massemanet/otp,getong/otp,msantos/otp,bsmr-erlang/otp,isvilen/otp,theom/otp,entropiae/otp,c-rack/otp,saleyn/otp,emile/otp,bugs-erlang-org/otp,rlipscombe/otp,cnbin/otp,c-rack/otp,hairyhum/otp,enikki/otp,uabboli/otp,basho/otp,vinoski/otp,potatosalad/otp,RGafiyatullin/otp,johanclaesson/otp,legoscia/otp,mikpe/otp,isvilen/otp,fenollp/otp