Last modified

Take a look and let me know what you think.  Testing this doesn't seem to have any ill effects, but it is touching a decent amount of the service layer.  This requires liquibase update to be run, so keep that in mind.
This could probably be:

    Response response = HTTPCachingUtil.checkModified(request, domain);
    if (response == null) {
        Gson serializer = GsonUtil.getDefault();
        String domainJson = serializer.toJson(domain);
        response = Response.ok(domainJson, MediaType.APPLICATION_JSON_TYPE).lastModified(domain.getLastModified()).build();
    }
    return response;