Make the base compiler accept target file names
Make the base compiler accept target file names

The rebar_base_compiler:run/5 is an alternative to run/8, where
instead of source/target dirs and file name extensions, it takes
a list of tuples: [{SourceFileName, TargetFileName}], after the
idea by Tuncer Ayaz in discussion with Luis Rascão and me.

This is useful for situations where the target file name cannot be
expressed as only a new suffix or extension.  For example the gpb
protocol buffer compiler can take an option to add a file name prefix
as well as a suffix.

As a result, the values passed around inside the internal functions in
rebar_base_compiler are either source file names (eg. when the run/4
function has been called), or items, which are two-tuples
{SourceFileName,TargetFileName} (when the run/7,8 or /5 functions have
been called).

macintux/rebar,dcarastan/rebar,csyangchen/rebar,RubberCthulhu/rebar,K2InformaticsGmbH/rebar,lpgauth/rebar,norton/rebar,apache/couchdb-rebar,matwey/rebar,bsmr-erlang/rebar,apache/couchdb-rebar,shkumagai/rebar,macintux/rebar,paulo-ferraz-oliveira/rebar,GabrielNicolasAvellaneda/rebar,norton/rebar,beni55/rebar,choptastic/rebar,norton/rebar,oubiwann/rebar,matwey/rebar,SiDen/rebar,rebar/rebar,apache/couchdb-rebar,lpgauth/rebar,K2InformaticsGmbH/rebar,platinumthinker/rebar,matwey/rebar,paulo-ferraz-oliveira/rebar,choptastic/rebar,lrascao/rebar,RubberCthulhu/rebar,csyangchen/rebar,paulo-ferraz-oliveira/rebar,SiDen/rebar,evnix/rebar,matwey/rebar,bsmr-erlang/rebar,K2InformaticsGmbH/rebar,CMoH/rebar,GabrielNicolasAvellaneda/rebar,cloudant/couchdb-rebar,cloudant/couchdb-rebar,bsmr-erlang/rebar,jacktang/rebar,jacktang/rebar,cloudant/couchdb-rebar,lrascao/rebar,choptastic/rebar,platinumthinker/rebar,lpgauth/rebar,K2InformaticsGmbH/rebar,dcarastan/rebar,SiDen/rebar,lrascao/rebar,scatterbrain/rebar,CMoH/rebar,bsmr-erlang/rebar,csyangchen/rebar,rebar/rebar,K2InformaticsGmbH/rebar,scatterbrain/rebar,platinumthinker/rebar,matwey/rebar,evnix/rebar,evnix/rebar,norton/rebar,dcarastan/rebar,CMoH/rebar,shkumagai/rebar,lrascao/rebar,scatterbrain/rebar,macintux/rebar,beni55/rebar,beni55/rebar,rebar/rebar,jacktang/rebar,oubiwann/rebar,GabrielNicolasAvellaneda/rebar,oubiwann/rebar,shkumagai/rebar,lrascao/rebar