Added new features to component diagram AST.

Transformation to a model is not yet implemeneted, nor is consistency of model checked, nor std primitive data types implmeneted.

1. Haskell inspired data type declarations:

```.hs
data String

data Item {
  id : String,
  name : String,
  desc : String
}

```

2. Idris inspired function declarations:

```.idr
createOrder : Int
addToOrder : (p : Product) -> (orderID : Int) -> Bool
removeFromOrder : (p : Product) -> (orderID : Int) -> Bool
```

3. Made provided interfaces links to actual interfaces, and added actual interfaces.

```.idr
component Accounting {
  provides ManageOrders from Orders
  provides ManageCustomers from Customers
  requires ManageInventory from Warehouses

  component Customers {
    interface ManageCustomers {
      addCustomer : (c : Customer) -> Bool
      removeCustomer : (c : Customer) -> Bool
    }
  }

  component Orders {
    interface ManageOrders {
      createOrder : Int
      addToOrder : (p : Product) -> (orderID : Int) -> Bool
      removeFromOrder : (p : Product) -> (orderID : Int) -> Bool
    }
    requires ManageCustomers from Customers
    requires ManageInventory from Warehouses
  }
}
```