Better error messages for invalid interfaces.

Now throws InvalidOperationException if the given service interface:
 * Is not marked public
 * Is not marked with ServiceContract attribute
 * Does not contain methods marked with OperationContract
The error messages are much easier to understand now.

For example attempting to use an interface without any OperationContract methods before this patch:
````
System.TypeLoadException : Method 'NonOperationTestMethod' in type 'WcfClientProxyGenerator.DynamicProxy.INoOperationsInterface' from assembly 'WcfClientProxyGenerator.DynamicProxy, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
````

And with this patch:
````
System.InvalidOperationException : Service interface INoOperationsInterface has no OperationContact methods. Is this a proper WCF service interface?
````´