Local storage adapter

This adapter provides ability to use client's localStorage as backend data persistent layer. I have implemented an opt-in circular queue mechanism where in a value of -1 will assume unlimited space available on localStorage whereas a valid value on circularLimit will wrap the entries in LIFO order. Circular limit can be tweaked using setCircularLimit().