Build libssl.a with a single archive command

All of the dependencies are declared and built before the libssl.a archive is
built. This enables fast, accurate, and parallelizable builds--especially
incremental builds.
Stale crypto/subdirs target cleanup
Build engines objects directly into libcrypto.a

Again, helps ensure a fast, correct, parallelizable build.
Make openssl.o dependencies slightly more correct
Add libssl.a dependency to test/heartbeat_test