run TravisCI on perl 5.18
use experimental module to squash warnings
squashing smartmatch warnings
explicitly marking attributes as lazy

when they depend on another attribute's value in their default
Merge pull request #4 from dgholz/issue/2

Issue/2 fixes #2