Fix #88: Use isAirBlock instead of Material.air

Also, add better error messages for validation problems!