Create AP spec object, update factory to take ap_specs

Before the ap_spec was a dictionary object that contained a lot of
data.  Now it is an object with the a small defined scope.  The
factory has also been updated to take a ap_spec object.

TEST=unittests
BUG=None

Change-Id: I98f5f88151ab73be465e15f68e5b61e0c1dd727d
Reviewed-on: https://gerrit.chromium.org/gerrit/64730
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Kris Rambish <krisr@chromium.org>
Commit-Queue: Kris Rambish <krisr@chromium.org>
4 files changed