Clean up handling of boot_vars
Clean up handling of boot_vars

Expansion of $ROOT in paths are handled specially compared to boot
variables. There is no reason $ROOT can't be handled as a boot
variable.

We can simplify the expansion of boot variables if we spend a little
extra effort upfront collecting all boot variables into a map.

Make the error checking for -boot_var arguments stricter. Only allow
-boot_var followed by exactly two arguments to help users catch
errors earlier.

emile/otp,getong/otp,isvilen/otp,uabboli/otp,massemanet/otp,fenollp/otp,weisslj/otp,vinoski/otp,isvilen/otp,legoscia/otp,potatosalad/otp,bsmr-erlang/otp,basho/otp,erlang/otp,emacsmirror/erlang,cobusc/otp,goertzenator/otp,rlipscombe/otp,bugs-erlang-org/otp,electricimp/otp,release-project/otp,emacsmirror/erlang,vinoski/otp,lrascao/otp,falkevik/otp,bsmr-erlang/otp,bernardd/otp,fenollp/otp,g-andrade/otp,rlipscombe/otp,uabboli/otp,RoadRunnr/otp,tuncer/otp,erlang/otp,tuncer/otp,legoscia/otp,getong/otp,erlang/otp,mikpe/otp,dgud/otp,lemenkov/otp,saleyn/otp,goertzenator/otp,g-andrade/otp,vladdu/otp,massemanet/otp,lrascao/otp,kvakvs/otp,lrascao/otp,RaimoNiskanen/otp,bjorng/otp,emile/otp,lrascao/otp,jj1bdx/otp,isvilen/otp,dgud/otp,bernardd/otp,aboroska/otp,dumbbell/otp,saleyn/otp,cobusc/otp,weisslj/otp,release-project/otp,dgud/otp,bernardd/otp,fenollp/otp,dumbbell/otp,uabboli/otp,massemanet/otp,emacsmirror/erlang,bugs-erlang-org/otp,weisslj/otp,aboroska/otp,dumbbell/otp,lemenkov/otp,lemenkov/otp,dgud/otp,basho/otp,RaimoNiskanen/otp,lightcyphers/otp,goertzenator/otp,bsmr-erlang/otp,basho/otp,vladdu/otp,getong/otp,aboroska/otp,RoadRunnr/otp,rlipscombe/otp,falkevik/otp,neeraj9/otp,dumbbell/otp,legoscia/otp,potatosalad/otp,isvilen/otp,bjorng/otp,lrascao/otp,vinoski/otp,vinoski/otp,electricimp/otp,release-project/otp,dumbbell/otp,vinoski/otp,vladdu/otp,emacsmirror/erlang,bernardd/otp,ferd/otp,release-project/otp,ferd/otp,getong/otp,vladdu/otp,mikpe/otp,fenollp/otp,tuncer/otp,rlipscombe/otp,bugs-erlang-org/otp,bugs-erlang-org/otp,kvakvs/otp,bernardd/otp,massemanet/otp,aboroska/otp,mikpe/otp,basho/otp,ferd/otp,jj1bdx/otp,vladdu/otp,RoadRunnr/otp,ahmedshafeeq/otp,neeraj9/otp,tuncer/otp,massemanet/otp,release-project/otp,neeraj9/otp,emacsmirror/erlang,lightcyphers/otp,dgud/otp,kvakvs/otp,lrascao/otp,matwey/otp,potatosalad/otp,jj1bdx/otp,rlipscombe/otp,bjorng/otp,RoadRunnr/otp,bugs-erlang-org/otp,erlang/otp,RaimoNiskanen/otp,isvilen/otp,isvilen/otp,g-andrade/otp,cobusc/otp,lrascao/otp,ahmedshafeeq/otp,lightcyphers/otp,uabboli/otp,emile/otp,rlipscombe/otp,jj1bdx/otp,uabboli/otp,mikpe/otp,emile/otp,vinoski/otp,rlipscombe/otp,RoadRunnr/otp,saleyn/otp,jj1bdx/otp,matwey/otp,kvakvs/otp,massemanet/otp,mikpe/otp,jj1bdx/otp,cobusc/otp,uabboli/otp,lightcyphers/otp,goertzenator/otp,matwey/otp,ahmedshafeeq/otp,basho/otp,vinoski/otp,ferd/otp,goertzenator/otp,potatosalad/otp,vladdu/otp,bernardd/otp,erlang/otp,psyeugenic/otp,saleyn/otp,massemanet/otp,getong/otp,cobusc/otp,saleyn/otp,bernardd/otp,legoscia/otp,g-andrade/otp,ferd/otp,falkevik/otp,bugs-erlang-org/otp,ahmedshafeeq/otp,jj1bdx/otp,lrascao/otp,getong/otp,dgud/otp,bsmr-erlang/otp,goertzenator/otp,bjorng/otp,isvilen/otp,legoscia/otp,aboroska/otp,g-andrade/otp,dumbbell/otp,lightcyphers/otp,goertzenator/otp,kvakvs/otp,ahmedshafeeq/otp,electricimp/otp,release-project/otp,psyeugenic/otp,getong/otp,mikpe/otp,tuncer/otp,emacsmirror/erlang,matwey/otp,vinoski/otp,jj1bdx/otp,release-project/otp,bsmr-erlang/otp,ferd/otp,emacsmirror/erlang,vladdu/otp,electricimp/otp,bsmr-erlang/otp,basho/otp,mikpe/otp,aboroska/otp,dumbbell/otp,lightcyphers/otp,bjorng/otp,g-andrade/otp,legoscia/otp,bjorng/otp,aboroska/otp,potatosalad/otp,lightcyphers/otp,lemenkov/otp,bsmr-erlang/otp,potatosalad/otp,isvilen/otp,legoscia/otp,bjorng/otp,matwey/otp,getong/otp,emile/otp,ahmedshafeeq/otp,emile/otp,psyeugenic/otp,electricimp/otp,emile/otp,aboroska/otp,jj1bdx/otp,jj1bdx/otp,mikpe/otp,vladdu/otp,vinoski/otp,cobusc/otp,goertzenator/otp,legoscia/otp,RaimoNiskanen/otp,RoadRunnr/otp,saleyn/otp,lemenkov/otp,getong/otp,uabboli/otp,g-andrade/otp,emacsmirror/erlang,neeraj9/otp,bjorng/otp,basho/otp,lemenkov/otp,falkevik/otp,erlang/otp,erlang/otp,cobusc/otp,bsmr-erlang/otp,tuncer/otp,matwey/otp,falkevik/otp,neeraj9/otp,ferd/otp,RaimoNiskanen/otp,erlang/otp,rlipscombe/otp,RaimoNiskanen/otp,tuncer/otp,falkevik/otp,basho/otp,matwey/otp,weisslj/otp,cobusc/otp,lemenkov/otp,ahmedshafeeq/otp,ferd/otp,bugs-erlang-org/otp,potatosalad/otp,potatosalad/otp,saleyn/otp,massemanet/otp,psyeugenic/otp,RaimoNiskanen/otp,emile/otp,vinoski/otp,psyeugenic/otp,saleyn/otp,psyeugenic/otp,emile/otp,weisslj/otp,saleyn/otp,basho/otp,psyeugenic/otp,weisslj/otp,neeraj9/otp,vladdu/otp,kvakvs/otp,tuncer/otp,weisslj/otp,legoscia/otp,bernardd/otp,fenollp/otp,potatosalad/otp,dgud/otp,isvilen/otp,psyeugenic/otp,emacsmirror/erlang,RoadRunnr/otp,dgud/otp,fenollp/otp,bsmr-erlang/otp,massemanet/otp,mikpe/otp,potatosalad/otp,goertzenator/otp,aboroska/otp,isvilen/otp,kvakvs/otp,dgud/otp,bjorng/otp,ahmedshafeeq/otp,matwey/otp,release-project/otp,matwey/otp,electricimp/otp,kvakvs/otp,rlipscombe/otp,electricimp/otp,release-project/otp,lrascao/otp,erlang/otp,falkevik/otp,fenollp/otp,kvakvs/otp,fenollp/otp,dumbbell/otp,mikpe/otp,bjorng/otp,lightcyphers/otp,g-andrade/otp,uabboli/otp,dgud/otp,tuncer/otp,g-andrade/otp,ferd/otp,getong/otp,RoadRunnr/otp,neeraj9/otp,fenollp/otp,weisslj/otp,dumbbell/otp,rlipscombe/otp,falkevik/otp,RaimoNiskanen/otp,uabboli/otp,neeraj9/otp,falkevik/otp,dumbbell/otp,ahmedshafeeq/otp,lemenkov/otp,erlang/otp,electricimp/otp,electricimp/otp,weisslj/otp,RoadRunnr/otp,g-andrade/otp,RaimoNiskanen/otp,bernardd/otp,emacsmirror/erlang,bugs-erlang-org/otp