Added a simple travis file

Adds build compatibility with Travis CI
Merge branch 'testing/travis-compat' into dev
Rebranded action conversion as "compilation"

This is a more accurate reflection of reality that makes everything easier to
understand.
Add API package, cleanup from compilation change

The API package is, at present, very barebones. Provides minimal tooling for
describing Blocks and their compilation targets.
Renamed "src" package to "salve"

Although this touches almost every file in the codebase, the change itself was
very small in every location -- simply replace the string "src" with "salve".
This leads to much more readable names like "salve.util..." rather than
"src.util..."
Moved the 'api' package into the 'salve' package

This is a minor naming hiccup, but it enables the nice absolute name for the
package: "salve.api"
Switched to OOP logging infrastructure

Logging is now done with a global Logger object, and the execution context it
works with is also global. Moves towards the possibility of exposing logging as
part of the SALVE API. Tests are failing due to I/O changes.
Made the logger use the global exec context

This allowed for some easy fixes to some of the tests. Since the logger is
always instantiated with the global exec context, why not just have it lookup
the global exec context? Clearer semantics, since passing it to the logger
doesn't do much.
Reverted logger to take ectx as arg

Began fixing the tests to mock the logger instead of trying to mock stderr &c.
By so doing, output control becomes much easier. As a mild requirement, means
that the logger must not be included with a `from` import in order for test
mocking to be simple.
Finish Block Unit Test fixes

Manifest Block tests were last, primarily consists of mocking the logger with a
silent dummy.
Continuing to fix tests by mocking the logger

Includes a small fix for logger printing involving unicode conversion (to pacify
all pythons).