Added some copy/assignment operators. Addressed warnings about
returning from non-void functions.
I found the segfault bug and fixed it!

It was a concurrency problem. In FrameListener::pop(), I did not
properly acquire the lock, because I forgot to actually
instantiate a instance of the scoped lock, so the mutex was
never properly locked by the reader thread.