Support multiple platforms + Swift Package Manager (#3) * Reorganise folders for SPM support and multiple platforms * Default associated type for cleaner conformances * Update readme * Update readme * Run CI on multiple platforms * test * Test * Fix linux tests * Restore all travis builds * Fix pod warnings