Implemented circular buffer

Some particulars I need feedback for:
- Whether the size checking is necessary. (Line 28 of circular-buffer.js)
- Whether or not I am using events properly or not (Lines 74, 91 of circular-buffer.js)
- The usefulness of some auxiliary methods (.back(), .clear(), .dequeue())