Makefile: enable running individual tests

e.g. `make github.com/drone/drone/pkg/database/migrate`

also add targets that don't correspond to files or directories to .PHONY
migrate/sqlite: create table only if it doesn't exist

fixes #224
Merge pull request #225 from Clever/makefile-tweaks

Makefile: enable running individual tests
Merge pull request #226 from Clever/sqlite-table-exists-error

migrate/sqlite: create table only if it doesn't exist
add 'rebuild' button to rebuild any build that has finished
only allow admins to rebuild commits

This is a check for both whether to display the button and whether to
actually do the rebuild. It slightly modifies RepoAdminHandler so it's
worth a close look.
fail when a label is passed but cannot be found; return errors so that they can be handled by RepoAdminHandler
document commit rebuild method
extract fetchBuildScript to be shared between hook handler and rebuild commit handler
gofmt to fix some indentation issues
reformat comments
always use repo creator to do rebuild, rather than current user
remove accidentally added file
protect against unauthenticated user when calling IsRepoAdmin
query and show commits by branch

This allows the same SHA to have different builds on different branches, each
separately viewable. This is useful for expressing a "pipeline" in terms of
branches, e.g. a commit starts on branch A and progress through B and C to
master, with the build script switching on branch name.

Previously viewing each build would arbitrarily choose which branch's commit
to show.