Talk to Soda Fountain from Geospace

I think this looks a bit better:
```scala
publishResponse recover {
  case e: InvalidShapefileSet => halt(BadRequest(e.getMessage))
  ....
}

Map("status" -> "published")   /// This is to return a concrete JSON blob to the user
```
but your version is not bad either.   In either case you can collapse to just one match by doing `case Failure(e: IOException)...  
Also, all of the cases which return InternalServerError you can collapse to one.