Merge pull request #10 from Husafan/master

Add Emacs tmp files to .gitignore.
+ Adding an enums file containing all the constants to be used by
anvil. Updated context.py to use it.

+ Added the build_logging package which will contain components
related to build logging.

+ Added the WorkUnit class to the build_logging package. This class
tracks the progress of work units, along with their status and the
start and end time of a discrete work unit. WorkUnit classes can be
composed into Parent/Child relationships, in which case the parent
classes will try to inherit information from their children.
Complete the WorkUnit class and add comments.

Added listener functionality to the WorkUnit class, allowing for an object to
receive notifications when the WorkUnit's values are updated.

Also finished commenting the WorkUnit class and adding tests for the listener
functionality.
Add a LogSource class and tests.

Adds a LogSource class meant to keep track of log messages at different
LogLevels. This initial commit creates a class that will buffer messages
at LogLevels that should be displayed given the LogSource's verbosity
level. Future commits will add the ability for LogSource's to interact
with or be used by LogSinks.
Added WorkUnitLogSource for monitoring and logging WorkUnits.

Added a WorkUnitLogSource that extends LogSource and implements the methods
required to be a WorkUnit change listener. The class converts updates from
a WorkUnit into LogSource log messages.

Also added a string formatting method to the enums package to convert Status
enum values back to string equivalents.
Add an interface for attaching LogSinks to LogSources.

Add an interface for adding LogSinks to LogSources and sending
messages to the LogSinks.

Also updated the setup to depend on Blessings, which is a terminal control
program. This will be used in creating a console log sink in order to
achieve text coloring and cursor positioning.
Add sending of messages to LogSinks along the inheritance chain og LogSource.

Modify LogSource such that adding a child to a LogSource will cause the child to
automatically inherit any LogSinks from the parent. Also prevent duplicate
LogSinks on a given LogSource.
Tweak logging to add DebugLevel in message.

Modified log messages to include the debug level in preface to all messaages.

Also added a utility method to enums to convert DebugLevels to strings.
Add an author line and a basic LogSink.
Small doc fix.
Fix relative mocking paths in unit tests.
Merge pull request #11 from Husafan/log

Add WorkUnit and LogSource Classes
Merge pull request #2 from google/master

Merge in head from google/anvil-build.