Add support for certificate based confidential client auth.  acquireTokenWithClientCertificate

One idea we discussed in the API review meetings was to get rid of ClientAssertionCertificate and add a factory method (or constructor) to ClientAssertion to create it using a certificate.