etc: added aws settings
etc: removed ec2-endpoint
api/app: added createBucket function

This function is used to create a bucket for the app in S3. It also
creates the user, keypair and access policy in IAM.

Related to #69.
api/app: added more information to s3Env struct

Related to #69.
api/app: added destroyBucket function

Related to #69.
api/app: make environment variable related tests more specific
api/app: don't delete all apps on TearDownTest

Each test should clean its mess.
api/app: use createBucket and destroyBucket in createApp and app.destroy

I've also changed destroy to work when the app does not have any unit
(in case of failures, or incosistency, for example).

There is a lot of changes in tests, now the tests are more higienic,
each of them delete destroy all apps that it creates, and createApp and
app.destroy are not used in all tests anymore. If the test need only the
app in the database, then it can be inserted using db.Session.Apps().

It should close issue #69, but it's not merged in master yet. Once our
patchs to goamz get merged, we can merge this branch.
all: added license information (BSD-3)
api/app: added license header to s3 files
api/app: adapt bucket creation to new goamz/iam api

The new goamz/iam package is still under review, but some changes can
already be reflected here.
Using bytes.Buffer how a custom stdout, stderr for Cmd output
instead CombinedOutput.

Related to #89.
Merge branch 'master' into iam
Running unit.Command with a custom stdout.

Related to #89.
Running unit.Command with a custom stderr.

Related to #89.
repository: fix data race in repository agent

Data race detected running `go test -race` in api/auth:

==================
WARNING: DATA RACE
Write by goroutine 5:
  github.com/globocom/tsuru/repository.(*Agent).loop()
      /Users/f/gocode/src/github.com/globocom/tsuru/repository/agent.go:94 +0xdb

Previous read by goroutine 39:
  github.com/globocom/tsuru/repository.func·002()
      /Users/f/gocode/src/github.com/globocom/tsuru/repository/agent.go:103 +0x53

Goroutine 5 (running) created at:
  github.com/globocom/tsuru/repository.RunAgent()
      /Users/f/gocode/src/github.com/globocom/tsuru/repository/agent.go:70 +0x120
  github.com/globocom/tsuru/api/auth.(*S).SetUpSuite()
      /Users/f/gocode/src/github.com/globocom/tsuru/api/auth/suite_test.go:130 +0x2e
  reflect.Value.call()
      /Users/f/lib/go/src/pkg/reflect/value.go:532 +0x16d2
  reflect.Value.Call()
      /Users/f/lib/go/src/pkg/reflect/value.go:345 +0x94
  launchpad.net/gocheck.func·005()
      /Users/f/gocode/src/launchpad.net/gocheck/gocheck.go:663 +0x15e
  launchpad.net/gocheck.func·004()
      /Users/f/gocode/src/launchpad.net/gocheck/gocheck.go:608 +0xcf

Goroutine 39 (running) created at:
  github.com/globocom/tsuru/repository.(*Agent).loop()
      /Users/f/gocode/src/github.com/globocom/tsuru/repository/agent.go:105 +0x209

==================
api/app: fix app.Get

No need for another address here (although I'm happy mgo handles pointer
pointers very well).
api/app: avoid data race between app.Get and env agent on handler tests

The data races were detected by `go test -race` on api/app.
log: redesign package to avoid data races

This change eliminates the last data race detected in api/app by
`go test -race` command.
api/service: use a mutex to avoid data races in endpoint tests