Add "normal", optparse-style options to swift-ring-builder add.

The old format is still present and works just like it did before, so
your existing scripts won't break.

New format pros:
 * it's readable even for Swift newcomers
 * it's easy to extend
 * it's familiar to anyone who's used a Unix command line
 * we don't have to maintain the parser

New format cons:
 * you can't add multiple devices in one go

Old format pros:
 * you can add many devices with one command
 * it's compact

Old format cons:
 * it confuses newcomers
 * "wait, is that zone dash IP colon port slash device, or zone slash
   IP dash port colon meta underscore device?" Just try walking
   someone through adding a device over voice chat.
 * it's annoying to add new fields

Note that this only affects the command "swift-ring-builder
<builderfile> add". Other swift-ring-builder commands are unchanged.

DocImpact

Change-Id: I034b7f79eb6f4d81a5c4da193e1358741441c5b5
bulk response Content-Type does not match request Accept header

Change-Id: Ieceed3837466c45bc2790b09cd56ae95f43dba2e
Added utils.FileLikeIter

A really simple version of this was in container sync already, and I
needed a more complete version for work I'm doing, and I noticed
https://review.openstack.org/#/c/33405/ was also making use of it.
So, here's a more full version.

If https://review.openstack.org/#/c/33405/ lands before this, I'll
update it accordingly.

Change-Id: Iba66b6a97f65e312e04fdba273e8f4ad1d3e1594
Merge "Add "normal", optparse-style options to swift-ring-builder add."
Merge "Added utils.FileLikeIter"
Merge "bulk response Content-Type does not match request Accept header"