Add max byte size for plan in conf

Added the property max_plan_size in solum.conf which will used when:
* we GET an external plan: we need to interrupt the download if the size
exceeds max_plan_size,
* we store the plan in Swift

Closes-Bug: #1301799
Change-Id: I98e3d6477d2c0461c7042afafd4d8697ac52f8fa
Add urlfetch to download external http resources chunk by chunk

* Added urlfetch from Heat which will be useful to fetch a plan
hosted remotely.
* Urlfetch works with https scheme and also with the file scheme
for local file. We currently do not need file:// in Solum but I
wanted to keep the code very close to Heat in case we try to move
this in oslo.
* Urlfetch does not download the entire file at once but gets the
file chunks by chunks and interrupts the download once max_size
is reached. (e.g property max_plan_size for Solum external plan)
* Units tests have been greatly changed since Heat uses Mox.

Closes-Bug: #1301953
Change-Id: I614a61939b8dd1c4e7fc9a17863a9e4860905338
Merge "Add max byte size for plan in conf"
Merge "Add urlfetch to download external http resources chunk by chunk"