Initial cache.dart checkin
Add MapCache tests
Address review comments, update README