fix error types, support promises on convenience methods
fix error types, support promises on convenience methods

closes #48

brandonaaron/sharp,cmtt/sharp,philip8728/sharp,brandonaaron/sharp,chrisriley/sharp,papandreou/sharp,mhirsch/sharp,pporada-gl/sharp,chrisriley/sharp,digital-flowers/sharp-win32,chrisriley/sharp,mdimitrov/sharp,philip8728/sharp,philip8728/sharp,mhirsch/sharp,leiyangyou/sharp,mcanthony/sharp,mdimitrov/sharp,digital-flowers/sharp-win32,mdimitrov/sharp,kevinsawicki/sharp,kevinsawicki/sharp,lovell/sharp,lovell/sharp,pporada-gl/sharp,philip8728/sharp,lovell/sharp,digital-flowers/sharp-win32,brandonaaron/sharp,pporada-gl/sharp,lovell/sharp,brandonaaron/sharp,cmtt/sharp,mdimitrov/sharp,dtest/sharp,lovell/sharp,lovell/sharp,dtest/sharp,papandreou/sharp,papandreou/sharp,mcanthony/sharp,mdimitrov/sharp,kevinsawicki/sharp,dtest/sharp,papandreou/sharp,mcanthony/sharp,leiyangyou/sharp,cmtt/sharp,chrisriley/sharp,dtest/sharp,cmtt/sharp,digital-flowers/sharp-win32,digital-flowers/sharp-win32,leiyangyou/sharp,kevinsawicki/sharp,brandonaaron/sharp,mhirsch/sharp,digital-flowers/sharp-win32,mcanthony/sharp,leiyangyou/sharp,chrisriley/sharp,mhirsch/sharp,pporada-gl/sharp,papandreou/sharp,dtest/sharp,digital-flowers/sharp-win32,kevinsawicki/sharp,pporada-gl/sharp,philip8728/sharp,mcanthony/sharp,leiyangyou/sharp