Support dynamic configs like in boot for migrations et al

Add support to lein caribou that allows the user to specify either :boot or :static as a way
to support both dynamic "boot" configs and the static edn in config files. To use the keyword
optoins, the user supplies the keyword where the config argument would have gone in the lein
task and then either a file or function to load the config from. For example, to run migrations
on a dynamicly generated config file, the user would input

'lein caribou migrate :boot project-namespace.boot/boot-config'

and the config map from that function would be retrieved. If no keyword is specific, the default 
behavior is the same as it was before this commit. Supporting this requires also modifying
run-migrations in caribou-core to accept a config map instead of a config file. I have submitted
a pull request there already in a branch called migrations-from-boot.

Also moved some util functions into a util file.