Conversion to a PCL, structural improvements

- Convert the project to a PCL
- Remove references to System.Net.Mail.
- Reorganize namespaces
- 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).
Update .gitignore.