Basic implementation of etags

Settings and options aren't sorted at all, but the functionality exists
in the rest verb methods.