Issue-740: Limit the queue size in the default ThreadPool in the SimpleHttpClient

and fix the bug on the ```FutureRequestExecutionService``` (unexpected closing)
How do you feel about the following pattern/proposal:

```xml
<bean id="httpClient" class="...SimpleHttpClientConfiguration">
    ...
</bean>

<!-- This is your builder...-->
<bean id="httpClient" class="...SimpleHttpClientFactoryBean">
    <property name="configuration" ref="configuration" />
</bean>
```

- The FactoryBean/Builder should then build `org.jasig.cas.util.http.SimpleHttpClient` entirely. 
- You could expose a constructor/setter on `SimpleHttpClient` and pass the acceptable codes over. This removes the need to reference the configuration object inside the client.

```java
new SimpleHttpClient(acceptableCodes[])...
```
- Same approach can be defined for the executor. 

Instead of 

```java
builder.buildRequestExecutorService(this.configuration, this.httpClient);
```

You could do:

```java
definedExecutorService = builder.buildRequestExecutorService(this.configuration);

// you already have the httpclient built at this point
executor = new FutureRequestExecutionService(httpClient, definedExecutorService);

new SimpleHttpClient(acceptableCodes[], httpClient, executor)...
```

This is the pattern we are borrowing from:
http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/cache/ehcache/EhCacheManagerFactoryBean.html