added ability to set timeout in milliseconds on DefaultPlaidUserClient

@erimag @raha936 

- using builder pattern for `DefaultPlaidUserClient` and `DefaultPlaidPublicClient`
- allowing `DefaultPlaidUserClient` to take a timeout in milliseconds when building.