Do not require Guava ByteSource in order to create a payload.

This reverts the commits which immediately switched String, byte[]. and File-based payloads to require wrapping with Guava ByteSource.

Adding ByteSource support is nice for guava users, but it is unnecessary to complicate others in order to support that.

Ex. 

```java
// Used to be
Blob blob = blobStore.blobBuilder("/stuff").payload("hello world!").build();
// Now!
ByteSource source = ByteSource.wrap("hello world!".getBytes(Charsets.UTF_8));
Blob blob = blobStore.blobBuilder("/stuff").payload(source).contentLength(source.size()).build();
````

Remember, we have diverse users and some don't think Guava is the only way to do I/O. Also, we need to be able to keep simple things simple.
@demobox FYI, this is what I was referring to. When we only accept ByteSource, what it is wrapping is opaque. Drivers like this can no longer more efficiently send a string, byte array, etc. This code was pulled out when ByteSource support was adding. This pull request puts it back.