Make password/db index optional & possible to use timeout when use Jedis / JedisPool with URI

fixes #653 and #654

* no need to provide password / DB index when user uses URI
* can provide timeout when user users URI

@xetorthio @marcosnils Please review! Thanks!
@HeartSaVioR now that I'm looking at my example twice, we should add another validation to this function (and make a test for it). If you use the URL I've sent in my first comment getDBIndex will raise a NumberFormatException. 

Here's a snippet which demonstrates what I'm referring to:

```java
URI uri = URI.create("redis://redistogo:44ec0bc04dd4a5afe77a649acee7a8f3@drum.redistogo.com:9092/");
String[] test = uri.getPath().split("/", 2);
System.out.println(Integer.parseInt(test[1]));
```

This will raise the following error: `Exception in thread "main" java.lang.NumberFormatException: For input string: ""`