Split TTL/non-TTL cases into separate macros

We were re-using the same user-supplied tree `f` in both branches of an 'if'
statement, like this:

```
q"""
if (non-TTL case) {
  scalacache.caching($keyName)($f)($scalaCache, $flags)
} else {
  scalacache.caching($keyName)($ttl)($f)($scalaCache, $flags)
}
"""
```

which causes typing problems with complex trees. Not sure of the exact
problem, but apparently it's unseemly to sprinkle the same tree around
willy-nilly.

Fixed by simply splitting the 2 cases into separate macros, thus
removing the need for an 'if' statement.
Add Squeryl integration test based on #14
Merge pull request #16 from cb372/fix/squeryl-bug

Fix/squeryl bug