mk: Split target triples into bulid triple + host triples + target triples

For cross compiling to targets that don't want to build a compiler
mk: Refactor platform.mk a bit
mk: Parameterize the toolchain over target triples