go(subroutines) ALL the things!

- Moving the writer to subroutines
- Clean the code around the creation of file and paths
- CREATE & INSERT are run inside a transaction now
- all the "own type errors" got removed -> recommended by a proper
  Gopher
- the flags reading was moved to the main() -> recommend by the same
  Gopher (hi @campoy!)
- polo executable was also added to the ignore files.
- I've added caching to the DB queries to avoid problems loosing the
  connection with sqlite3*.

* There are other ways of fixing this (see [1]) when working with sqlite
and subroutines, but they will require more changes, and caching was
always an idea in my head.

[1]
https://godoc.org/code.google.com/p/go-sqlite/go1/sqlite3#hdr-Concurrency