fix(client): use sys.stdout.write for logs

The logs already print out newline characters, so using print()
adds an extra empty line to the log output. Using sys.stdout.write()
removes this empty line.
fix(logger): remove Source and Tag from output

An application's logs should not contain which host it was listed
on. It should only care about the data that is relevant to it.

The Tag field is unused, so this added an extra whitespace to the
log format. Removing it cleans up the logs a bit.
test(logger): add filehandler tests
test(logger): add log message tests
feat(logger): add make test/coverage
test(logger): hook up logger tests to TravisCI
style(gitignore): add coverage.out to gitignore
test(logger): add priority tests
fix(travis): install go cover
Accept ECDSA keys in keys:add

Fixes #1262
Add tests for ECDSA keys
fix(controller/scheduler): only announce 'web' and 'cmd' processes

Currently the nginx routers gets announced all types of processes.
This causes problems as both non-web and web processes are mixed
together by the router. The router should only be serving 'web'
processes for buildpacks or 'cmd' processes for dockerfiles.

This fix stops announcing any processes that does not have '.web'
or '.cmd'.

closes #1256
fix(scheduler/coreos): correct announce container logic for process types

Previously, the logger and proctype comparison logic were incorrect.
Merge pull request #1132 from deis/log-formatting

test(logger): add syslog tests
fix(scheduler/coreos): have announcer fail if it cannot get a port

Instead of publishing an invalid upstream for the router to use,
we simply check if the port is nil and exit.
Merge pull request #1263 from public/ecdsa-keys

Accept ECDSA keys in keys:add
Merge pull request #1269 from deis/1251-fix_portless_apps

fix(scheduler/coreos): fix apps announcing themselves with no port
fix(travis-ci): update logger makefile target to "test-unit"

The "make test" target in logger now runs functional tests as well,
requiring Docker. This was not the intention at Travis-ci.org, where
we want just unit tests.
Merge pull request #1274 from deis/fix-travis

fix(travis-ci): update logger makefile target to "test-unit"
fix(scheduler/coreos): skip announcer containers for start, stop, destroy

With #1269 we stopped creating announce containers except for web and cmd
types, but we still attempt to perform actions on them for start, stop,
and destroy. This commit adds logic to wrap all of these scheduler actions
in a conditional which skips (and logs) announce operations.

TESTING: rebuild the controller
```console
$ make -C controller stop build start
```

Then, deploy an application which has either a cmd or web proctype, as
well as a non-standard type. I modified the Procfile for our
example-ruby-sinatra like so:

```
web: bundle exec ruby web.rb -p ${PORT:-5000}
clock: echo flava flavvvvvvv
```

Scale the app, start/stop processes, etc. You should see successful
operations for both, and note that the clock type has no announce
containers. The output of ```deis ps``` should always show them
as being up:

```
=== exotic-icehouse Processes

--- web:
web.1 up (v3)
web.2 up (v3)
web.3 up (v3)

--- clock:
clock.1 up (v3)
clock.2 up (v3)
clock.3 up (v3)
```

fixes #1273
closes #1275