Attempt to get boundary geohashes to line up with PostGIS ST_GeoHash and geohash.org

At lat/lon 0,0 the output of geohash should be s00000000000 to match geohash.org and PostGIS ST_GeoHash function.

    => select ST_GeoHash(ST_SetSRID(ST_MakePoint(0,0),4326),12);
      st_geohash  
     s00000000000

Similar issue was fixed in PostGIS to match geohash.org:
Reference: http://trac.osgeo.org/postgis/ticket/2201

Also:
Add asserts for hashes around boundary/pole conditions.