don't transition between identical backgrounds
fix edge case in background transitions (closes #604)
generate background hash under additional conditions
add convex background transition
add concave and zoom background transitions