Basic system with all three current model types working in ORM lite

Signed-off-by: Martin Evans <martindevans@gmail.com>
Added a way to fetch readings from the database

Signed-off-by: Martin Evans <martindevans@gmail.com>
Added a proxying module which takes /devices/{id}/{SOME PATH} and then passes the request on to the appropriate node, then sends the response back as a HTTP response (full proxy for coap)

Signed-off-by: Martin Evans <martindevans@gmail.com>
Figured out CoAP/HTTP request proxying (probably)

Signed-off-by: Martin Evans <martindevans@gmail.com>
Implemented Readings, of three types: Blob (byte[]), String and Decimal - more can be added easily
Refactored routes to be hierarchical
Made a vague start on User model

Signed-off-by: Martin Evans <martindevans@gmail.com>
Implemented Users, Claims and Sessions. Post a username and password (in query string) to /authentication to receive a session key, then put a sessionkey in the query string of every request to execute that request under that session. GET /authentication to view the current user

Signed-off-by: Martin Evans <martindevans@gmail.com>
Created a claims module which allows you to create, list and delete claims for users. Everyone can list their own claims without need for any permissions

Signed-off-by: Martin Evans <martindevans@gmail.com>
Added a command line option (-a --admin) which specifies which user is the admin, gives this user the "create-claim" permission (i.e. they can manage all claims). This option is *only* applied in conjunction with (-c --clean) i.e. when a new database is being created!

Signed-off-by: Martin Evans <martindevans@gmail.com>
Modified everywhere that links are built and returned in the API to append the sessionkey (if one is present) onto the link, this means you can click around the API easily without having to mess around with pasting the sessionkey into the query string every time.

Signed-off-by: Martin Evans <martindevans@gmail.com>
Added more startup options (admin username/password, database connection string)
Added an interactive setup mode which actives if clean start (--clean) us set to true
Made Database take in a connection string instead of hardcoding bastet.sqlite

Signed-off-by: Martin Evans <martindevans@gmail.com>
Added parsing JSON options file, atm options override commandline options which isn't what we want!
Minor cleanup

Signed-off-by: Martin Evans <martindevans@gmail.com>
Moved all the API to all be relative to whatever the path is in ApiModule (/api at the moment)
MainModule is now free to show a friendly introductory page, instead of the api root.

Signed-off-by: Martin Evans <martindevans@gmail.com>
Renamed MainModule.cs to RootModule.cs, which better describes it. Root module just returns the "Root" View (Views/Root/Root.html)
Authentication accepts http basic auth encoded values from header, if they're there

Signed-off-by: Martin Evans <martindevans@gmail.com>
Added a page to display when you navigate to the server URL
Properly daemonized process (ready for running as a service on linux)

Signed-off-by: Martin Evans <martindevans@gmail.com>
Setting cookie with Session Key, so now if a cookie is specified the session key from that is used, otherwise a sessionkey in the query string is looked for

Signed-off-by: Martin Evans <martindevans@gmail.com>