JCLOUDS-410. Correctly override getInput

Payload.getInput must always call openStream to handle overridden
methods correctly.  Previously this caused errors in jclouds-chef in
BaseCipherPayload.
diff --git a/core/src/main/java/org/jclouds/io/payloads/BaseCipherPayload.java b/core/src/main/java/org/jclouds/io/payloads/BaseCipherPayload.java
index b1bd930..67864cd 100644
--- a/core/src/main/java/org/jclouds/io/payloads/BaseCipherPayload.java
+++ b/core/src/main/java/org/jclouds/io/payloads/BaseCipherPayload.java
@@ -44,8 +44,8 @@
    public abstract Cipher initializeCipher(Key key);
 
    @Override
-   public CipherInputStream openStream() {
-      return new CipherInputStream(super.getInput(), initializeCipher(key));
+   public CipherInputStream openStream() throws IOException {
+      return new CipherInputStream(super.openStream(), initializeCipher(key));
    }
 
    @Override
diff --git a/core/src/main/java/org/jclouds/io/payloads/DelegatingPayload.java b/core/src/main/java/org/jclouds/io/payloads/DelegatingPayload.java
index 4524411..00db330 100644
--- a/core/src/main/java/org/jclouds/io/payloads/DelegatingPayload.java
+++ b/core/src/main/java/org/jclouds/io/payloads/DelegatingPayload.java
@@ -22,6 +22,8 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 
+import com.google.common.base.Throwables;
+
 import org.jclouds.io.MutableContentMetadata;
 import org.jclouds.io.Payload;
 
@@ -50,7 +52,11 @@
     */
    @Override
    public InputStream getInput() {
-      return delegate.getInput();
+      try {
+         return openStream();
+      } catch (IOException ioe) {
+         throw Throwables.propagate(ioe);
+      }
    }
 
    /**
diff --git a/core/src/test/java/org/jclouds/io/payloads/MultipartFormTest.java b/core/src/test/java/org/jclouds/io/payloads/MultipartFormTest.java
index 5a23418..9121c12 100644
--- a/core/src/test/java/org/jclouds/io/payloads/MultipartFormTest.java
+++ b/core/src/test/java/org/jclouds/io/payloads/MultipartFormTest.java
@@ -74,8 +74,8 @@
       }
 
       @Override
-      public InputStream getInput() {
-         return realPayload.getInput();
+      public InputStream openStream() throws IOException {
+         return realPayload.openStream();
       }
 
       @Override