add ConstrainedHttpClient to basis

this is a recreation of @gnurik's fork based PR so that we can quickly add changes to the PR and merge without waiting on a more circuitous resolution. The original description was:

"Moved ConstrainedHttpClient from app into common basis lib for reuse"