Add locks to GetColumns.

In relation to issue #52. Adding locks to the GetColumn calls that are
used to preload the columns seems to solve the immediate thread safety
issues I was hitting.
GetDataContext with runtime resolution path.

This allows the runtime context to use a different resoultion path to
the development context used in the type provider.