Update atom comments

Change-Id: I63d399462009bf0939d8a7d7af2ebfbe066bf90e
Engine cleanups

Instead of having many of the instance local variables
be created in the __init__ method, instead create them
during the compilation stage where most of these variables
are actually used. This allows for the multi-threaded
engine to not have to setup an instance variable before the
parent constructor is called and seems cleaner in general.

Ensure that a engine that is not compiled can not be
suspended since it seems like an inappropriate action for an
engine to allow when it has not been compiled.

Change-Id: I89c4555832e833e588bc4ac6b912be0c5b886831
Cleanup engine base class

- Add comments and abstract methods that all
  engines should implement.
- Adjust creation of the storage property so
  that it is created on first access instead
  of on initialization.
- Move notifiers to top level base class since
  they should be properties of all engines.

Change-Id: I36cf2b5435d12fa59e015ce5370644020093461d
Merge "Update atom comments"
Merge "Engine cleanups"
Merge "Cleanup engine base class"