Merge from master; update new tests, add blob.getApplicationVersion that abstracts lower level versions