Instead of creating fields on the type, we should create properties

Instead of creating fields on the type, we should create properties with getters and setters

Through testing I found that while Json.Net serialized fields just fine, ServiceStack.Text doesn't and instead returned an empty object

Performance has not been affected by this change, tested on generating lists of 100,000

If curious, spitting out a list of new strongly typed objects it takes 7ms.  Creating a list of a strong anonymous type takes 15ms.  Creating a list using this code takes 16ms - which is mighty impressive