Enhanced __geo_interface__

Creating a pull request that has the work I've linked to you previously about __geo_interface__ so we can discuss it here.  This is not really ready to merge and it just for discussion at this point.  Would like to hear what you think about it.  If you did want to merge it in I would want to do some clean up on my code first that I haven't had time to get to yet.