Conversion to a PCL, structural improvements, shipping quality

- Convert the project to a Portable Class Library so it can be used on other platforms (Xamarin.Android, Xamarin.iOS, etc)
- Remove references to System.Net.Mail.
- Reorganize namespaces, move nested classes to separate files.
- Clean up the code for a more maintainable structure.
- Copy documentation to concrete classes (no one is going to use the interfaces except for unit tests).