Python 3: decode bytes before feeding them to jsonutils.loads()

urlopen(...).read() returns bytes in Python 3, so we cannot call
jsonutils.loads() on the output: we first have to decode() it.

Change-Id: I39504059a8c82347476dd88dfcbd060d58df13d0
Python3: fix a bytes/str issue

test_curl_log_i18n_headers, introduced in
0b730e82b4bf63be1c3acd924a77a684a31db709, does not work with Python 3, because
Python 3, the headers must also be bytes,

Change-Id: I7baf737b3d9e2763a43eb593ca8ea733274a1107
Resolve files in resource types

This adds a new step resolving files in Resource type, allowing to embed
templates directly in stack files and referencing them in types.

Change-Id: I147894e51505b01ebfc3e1de982f20a45471c5cd
Closes-Bug: #1291445
Skip timeout_mins when not specify

Don't pass timeout_mins to API calls when it's not provided by the user.

Change-Id: Ie50126e77e53caabb8e8ec5c3afbde9c4c623590
Closes-Bug: #1297723
Merge "Resolve files in resource types"
Python 3: fix test_template_utils.py

The mock for urlopen().read() should return bytes in Python 3, not text
strings. Do this and fix everything that's needed to make the tests work.

Change-Id: Ief7c2efff81238c99db21ae7fff86d15f210a75f
Merge "Skip timeout_mins when not specify"
Merge "Python 3: decode bytes before feeding them to jsonutils.loads()"
Merge "Python 3: fix test_template_utils.py"
Merge "Python3: fix a bytes/str issue"