Make ENV accept multiple vars for a single layer

This is a refactored version of @cpuguy83 's pull request to fix #2333.
I have made changes to meet @shykes's specification as per:
https://github.com/docker/docker/pull/3368#issuecomment-40855331

I have still allowed a very restricted set of special characters though as i have noted down in the docs.