Move source tagging to program::create_with_source

The source gets tagged with platform/device info inside
program::create_with_source() instead of meta_kernel::compile().

This allows caching to work with user-supplied kernels. The radix_sort
and program tests still fail.

refs kylelutz/compute#21
Fix test_program when offline cache is in use

Do not check for non-empty program source in test_program when offline
cache is in use. In this case the program source could legitimately be
empty.

Refs kylelutz/compute#21