Custom tile server

The current version uses OSM, but is locked to MapBox without some code changes. This pull allows any OSM tile server to be specified at build time. I also updated the README to better explain the process. I'm pretty new to Java/Android programming outside of school, so please let me know if this is breaking all the rules of what's normal/good practice/whatever. I'm still trying to dig up a nice list of public(ish) tile servers, so the README can link to that instead, but I'd like to see what people thought of the code in the mean time