Add common abstract base class for SyncedMemory and OpenCLSyncedMemory
Add the factory function to produce synced memory
Add tests for OpenCL synced memory