#24 API integration to support Admin UI and basic use cases

#24 API integration to support Admin UI and basic use cases
- Bug. Changed ApiRequest ApiCollection to be nullable so the first enum
didn't always populate the collection, even when there is no match.
- Introduced the fluent ApiResponseBuilder, refactored all response
building logic to ApiResponseBuilder from FemahApiHttpHandler
- Modifed API to return 404's instead of 500's for missing items such as
invalid collections
- Renamed API Collection to Service
- Renamed API Member to Parameter
- Added better unit test coverage for API edge cases

#33 Should Feature Switch types contain a description?
- As part of ApiResponseBuilder (#24), I also added an ApiReponse class
(containing a string body and int HTTP status code) to simplify building
up and responding to an API request.
- Implemented ApiFeatureSwitchType, a custom class to allow us to
serialise a JSON response containing the FeatureSwitch Type, Name,
Description and ConfigurationInformation, the serialisation of this
class is then returned as the ApiReponse.Body from the
ApiResponseBuilder.