Don't mix global env vars with matrix env vars

After introduction of global environment varialbles they were mixed into
each matrix :env values. Such way of dealing with them causes a range of
problems, mostly related to the fact that global env vars are not
actually part of the matrix, but are included as matrix elements.

This commit changes this, to send global env vars as
config[:global_env] and not mix them with matrix.
Remove megahax for matrix.include and secure env vars
Revert hack removal from aa5a2a6 and add feature flip for it

I want to make it backwards compatible by default in case there are
workers not capable of handling it (it may be true for Travis PRO)
Add feature flip for enabling passing global_env in config